1

Rabin Karp 部分文字列検索アルゴリズムでは、次のようになります。

1) 部分文字列のハッシュを計算する 2) スライディング ウィンドウ [部分文字列のサイズに等しい] を取得し、ウィンドウ内に存在する文字列のハッシュを部分文字列のハッシュと比較します。3) ハッシュが一致する場合、ウィンドウの内容を部分文字列と比較します。

質問: 1) ハッシュを最初に照合してから比較することにより、パフォーマンスの点でどのようなメリットがありますか? なぜ単純に比較できないのですか?ハッシュの比較はより高速になる可能性がありますが、どのように(取得できませんでした)?

4

1 に答える 1

1

O(1)ウィンドウがスライドすると、新しいハッシュの計算O(1)とハッシュの比較に時間がかかるだけです。

完全な文字列の比較を行うとO(m)、ウィンドウをスライドするたびに最大の時間がかかります。ここmで、部分文字列の長さであり、分岐の予測ミスに悩まされる可能性があります。

于 2016-12-26T04:51:05.763 に答える