📜  DAA Rabin-Karp算法

📅  最后修改于: 2020-12-11 01:42:54             🧑  作者: Mango

拉宾·卡普算法

Rabin-Karp字符串匹配算法为模式以及要比较的文本的每个M字符子序列计算哈希值。如果哈希值不相等,则算法将确定下一个M字符序列的哈希值。如果哈希值相等,则算法将分析模式和M字符序列。这样,每个文本子序列只有一个比较,并且仅当哈希值匹配时才需要字符匹配。

示例:对于字符串匹配,工作模块q = 11,Rabin-Karp匹配器在文本T = 31415926535 ……中遇到了多少假匹配。

  T = 31415926535.......
  P = 26
 Here T.Length =11 so Q = 11    
 And P mod Q = 26 mod 11 = 4
Now find the exact match of P mod Q...

解:



复杂:

RABIN-KARP-MATCHER在最坏情况下的运行时间为O((n-m + 1)m,但平均情况下运行时间很好。如果预期的强移次数较小,则O(1)为质数q如果选择的值很大,那么可以预期Rabin-Karp算法的运行时间为O(n + m)加上处理虚假命中所需的时间。