
このように、クヌース
–
モーリス
–
プラット法は「パターンを一気にずらすことができ
る」、「照合位置を後戻りさせず前に進めることができる」という
2
つのアイデアを用いて、単
純なアルゴリズムを高速化させています。パターンからずらすべき文字数を計算する前処理
は
O
(
m
)、 実 際 の文字列照合は
O
(
n
)時 間 でできますので、全 体 で
O
(
n
+
m
)時 間 になります。
… a b c a b ………
a b c a b b a
アルゴリズムとターンの
1
文字照合ていのの
2
文字「
a b
」は
て合は
5
文字分は
3
文字分
… a b c a b ………
a b c a b b a
てターンの
1
2
文字は合ていのて
3
文字照合開
いはテキストのと
1
にに
21
22
つり文字照合
はテキストはり
先と
りめいの