マイコミジャーナルの連載記事で、「StringSearch」という文字列検索のためのJavaライブラリを紹介しました。 攻略! ツール・ド・プログラミング (44) 高速な文字列検索を実現するJavaライブラリ「StringSearch」 | マイナビニュース その補足も兼ねて、記事中に出てくる文字列検索アルゴリズムについて少しまとめてみました。細部を省略した大雑把な説明なので厳密な解説ではありませんが、参考までに。 naiveアルゴリズム 対象の文字列とパターン文字列を先頭から順番に比べていき、マッチしなかったら1文字進めてまた最初から比べるという手法です。 java.lang.StringのindexOf()メソッドなどはこの実装だそうです。 Knuth Morris Pattアルゴリズム(KMPアルゴリズム) マッチに失敗した場合に、比較するスタート位置を1文字ずつ進めるではなく、何
![文字列検索アルゴリズムの覚え書き - 我らねぶた馬鹿](https://cdn-ak-scissors.b.st-hatena.com/image/square/0cc84c59fd49626aa37c8f88e74ad52f22cd06ac/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fz%2Fzinbe%2F20110127%2F20110127170417.png)