在最佳情况下,KMP算法的最小比较次数是多少?

时间:2012-10-20 21:42:51

标签: algorithm knuth-morris-pratt

KMP算法在最佳情况下的最小比较次数是多少?

2 个答案:

答案 0 :(得分:4)

当您要查找的字符串位于文本字符串的开头时,会出现最佳情况。在这种情况下,如果您要在k字母字符串中查找n个字母字符串,则最佳情况下的比较次数为k

您还必须根据k字母单词计算表格的开销,这样您就可以在找不到匹配项时知道要跳过哪些字母。无论如何,这种结构都是在O(k)中完成的。

答案 1 :(得分:1)

嗯,最佳情况下的最小比较次数将是字符串的长度,这意味着您首先尝试匹配。该算法是O(n),意味着上限或最坏情况将采用n比较,其中n是您正在搜索的字符串的长度。维基很不错。 http://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm