KMP法の効率とは? わかりやすく解説

KMP法の効率

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2012/07/29 10:36 UTC 版)

クヌース-モリス-プラット法」の記事における「KMP法の効率」の解説

このアルゴリズム各部分は(上述通りそれぞれ O(k) と O(n)計算量があるので、全体として計算量は O(n + k) となる。 先述実施例でも明らかなように、文字スキップできればきただけ単純な文字列検索アルゴリズムよりも有利となる。つまり、バックトラックがない方が好ましい。換言すれば T が全て 0 になっていればよい。従って "ABCDEFG" のような単語ではこのアルゴリズムは最も効率的に動作しその際テーブル先頭が -1 でそれ以外全て 0 となっている。逆に W = "AAAAAAA" のような場合最悪である。このときのテーブルは以下のようになる。 i0 1 2 3 4 5 6 W[i]A A A A A A A T[i]-1 0 1 2 3 4 5 これは T の最悪パターンであり、S = "AAAAAABAAAAAABAAAAAAA" といった単語にもあてはまる。S の中に "AAAAAAB" が出現する頻度が多いほど繰り返し回数増える。この単語テーブル生成高速となるが、検索複数行われる可能性があるのに対してテーブル生成1回だけである。従って、このような単語検索する場合、このアルゴリズム性能低下するちなみにこのような文字列ボイヤー-ムーア法では最高の性能となる。KMP法最良でも最悪でも線形時間で検索完了するに対してボイヤー-ムーア法最良最悪大きく時間異なる。

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


KMP法の効率

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

クヌース–モリス–プラット法」の記事における「KMP法の効率」の解説

このアルゴリズム各部分は(上述通りそれぞれ O(k) と O(n)計算量があるので、全体として計算量は O(n + k) となる。 先述実施例でも明らかなように、文字スキップできればきただけ単純な文字列検索アルゴリズムよりも有利となる。つまり、バックトラックがない方が好ましい。換言すれば T が全て 0 になっていればよい。従って "ABCDEFG" のような単語ではこのアルゴリズムは最も効率的に動作しその際テーブル先頭が -1 でそれ以外全て 0 となっている。逆に W = "AAAAAAA" のような場合最悪である。このときのテーブルは以下のようになる。 i0 1 2 3 4 5 6 W[i]A A A A A A A T[i]-1 0 1 2 3 4 5 これは T の最悪パターンであり、S = "AAAAAABAAAAAABAAAAAAA" といった単語にもあてはまる。S の中に "AAAAAAB" が出現する頻度が多いほど繰り返し回数増える。この単語テーブル生成高速となるが、検索複数行われる可能性があるのに対してテーブル生成1回だけである。従って、このような単語検索する場合、このアルゴリズム性能低下するちなみにこのような文字列ボイヤー-ムーア法では最高の性能となる。KMP法最良でも最悪でも線形時間で検索完了するに対してボイヤー-ムーア法最良最悪大きく時間異なる。

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

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


このページでは「ウィキペディア小見出し辞書」からKMP法の効率を検索した結果を表示しています。
Weblioに収録されているすべての辞書からKMP法の効率を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からKMP法の効率を検索

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

辞書ショートカット

すべての辞書の索引

「KMP法の効率」の関連用語

KMP法の効率のお隣キーワード
検索ランキング

   

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



KMP法の効率のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS