KMP字符串搜索算法的最坏情况是什么?

时间:2011-10-20 16:33:28

标签: algorithm testing complexity-theory

有人可以建议我使用最糟糕的“文本字符串 - 模式对”来测试KMP算法实现吗?

2 个答案:

答案 0 :(得分:5)

我会说像

这样的模式
xx........x
| n times |

之类的字符串
xxx.........xyx...........xy....
| n-1 times | | n-1 times |

将是最糟糕的情况之一,但它仍然是O(m+n)

答案 1 :(得分:2)

您可以在此处找到有关KMP算法的任何内容:

KMP ALGORITHM

  

快速提取:

     

Knuth,Morris和Pratt发现了第一个线性时间串匹配   算法通过对天真算法的严密分析。   Knuth-Morris-Pratt算法保留了天真的方法   在扫描文本期间浪费了。通过避免这种浪费   信息,它实现了O(n + m)的运行时间,这是最佳的   在最糟糕的情况下。 也就是说,在最糟糕的情况下,Knuth-Morris-Pratt   算法我们必须检查文本中的所有字符和   模式至少一次。

您应该能够理解您对算法的理解并找到您需要的内容。

希望有所帮助