IT用語帳
FEアルゴリズムとプログラミング · アルゴリズム

文字列照合

String Matching

もじれつしょうごう

長い文字列の中から指定した文字列(パターン)が現れる位置を探す処理。先頭から1文字ずつずらす素朴な方法のほか、不一致の情報を利用してずらす幅を大きくするKMP法やBM法がある。

共有:

Related

関連キーワードの用語

APKMP法

文字列探索アルゴリズムの一つ。パターン文字列の前処理で不一致時の移動量を示す失敗関数テーブルを作成し、テキスト上のポインタを戻さずに探索を続行する。最悪ケースでもO(n+m)の計算量を保証する。

FE動的計画法

最適化問題を部分問題に分割し、各部分問題の解を記憶しながら全体の最適解を求めるアルゴリズム設計手法。重複する部分問題を再計算せずに済むため効率的。ナップサック問題や最短経路問題に応用される。

FEフィボナッチ数列

直前の2項を足した値が次の項になる数列。1,1,2,3,5,8,13…と続く。再帰処理の例題として頻出で、素直に再帰で書くと同じ計算を何度も繰り返すため、途中結果を保存する動的計画法で高速化できる。

FE時間計算量

アルゴリズムの実行に必要な計算ステップ数を入力サイズの関数として表したもの。オーダー記法O(n)で表現され、O(1)、O(log n)、O(n)、O(n log n)、O(n²)などがある。アルゴリズムの効率を評価する基本指標。

FEバブルソート

隣接する要素を比較して交換を繰り返すことでデータを整列するアルゴリズム。平均・最悪計算量ともにO(n²)で効率は良くないが、アルゴリズムが単純で理解しやすい。安定ソート。

FE選択ソート

未整列部分から最小値(または最大値)を見つけて先頭に移動する操作を繰り返す整列アルゴリズム。計算量はO(n²)で、交換回数が少ないがデータ比較は多い。不安定ソート。