Knuth-Morris-PrattアルゴリズムがBoyer-Mooreよりも速い例?


10

Knuth-Moriss-PrattアルゴリズムとBoyer-Mooreとの比較に関するこのページでは、Koyer-Mooreアルゴリズムがスキップ距離が短いためにKMPのパフォーマンスが向上する可能性があるケースについて説明します。
このケースを明確に示すことができる良い例(テキスト、パターン)を探しています。


回答:


3

さまざまなパターンに対してこれらの文字列マッチングアルゴリズムについて良い実験を行った論文があります:「文字列マッチングアルゴリズムの比較:情報コンテンツのセキュリティへの支援

また、これらの日本語の文字列照合アルゴリズムに関する研究もあります。 日本語テキストの文字列照合アルゴリズムの比較と改善

これらがアルゴリズムの効率について理解するのに役立つことを願っています!


3

これらのパターンにより、KMPの動作が速くなります。

T = aaaaaaaaaa P = aaaa KMPは10の比較ステップを試行し、Boyer-Mooreは28を使用します

もう一つの例:

T = aaaaaaaaaa P = abab KMPは、BMが12を試行する8つの比較ステップを試行します。


最初の例では、両方のアルゴリズムが最初のシフトですぐに一致を検出します。どのようにして4つ以上の比較を行うのでしょうか。
BartoszKP 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.