この検索アルゴリズムの効率とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > この検索アルゴリズムの効率の意味・解説 

この検索アルゴリズムの効率

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/08 01:52 UTC 版)

クヌース–モリス–プラット法」の記事における「この検索アルゴリズムの効率」の解説

テーブル T が事前に用意されているとした場合クヌース-モリス-プラット法検索部分計算量は O(k)(ここで k は S の長さ)となる。関数呼び出し関わる固定オーバヘッド部分を除くと、全ての計算while ループ内で行われるため、このループ繰り返し回数の上限が計算量となる。ここで T の性質が重要となる。S[m] から開始され照合が S[m + i] と W[i] の不一致失敗したとき、次の照合は S[m + (i - T[i])] から開始される次の照合は m 以降インデックスから開始される必要があるため、T[i] < i が成り立つ。 このことから、ループ最大 2k繰り返されることがわかる。繰り返しのたびにループ内の2つ分岐いずれか実行される最初分岐では、常に i をインクリメントして m をそのままとし、インデックス m + i を変化させることで S 内の文字調べていく。次の分岐では i - T[i] を m に加算する前述通り、この加算する値は常に正の値である。従って、照合開始位置 m は増加していく。ループ終了m + i = k となったときである。従ってループ内の分岐は k 回実行され、各分岐m + i か m のいずれか増加させる。ここで、m ≤ m + i である。m = k となったとき、m + i ≥ k なので、それ以前いずれか時点m + i = k となっているはずである。従っていずれにしても処理は終了する。 以上からループ繰り返し回数最大でも 2k 回であり、この検索アルゴリズム計算量は O(k) となる。

※この「この検索アルゴリズムの効率」の解説は、「クヌース–モリス–プラット法」の解説の一部です。
「この検索アルゴリズムの効率」を含む「クヌース–モリス–プラット法」の記事については、「クヌース–モリス–プラット法」の概要を参照ください。

ウィキペディア小見出し辞書の「この検索アルゴリズムの効率」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

この検索アルゴリズムの効率のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



この検索アルゴリズムの効率のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのクヌース–モリス–プラット法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS