有人可以建议我使用最糟糕的“文本字符串 - 模式对”来测试KMP算法实现吗?
答案 0 :(得分:5)
我会说像
这样的模式xx........x
| n times |
和
之类的字符串xxx.........xyx...........xy....
| n-1 times | | n-1 times |
将是最糟糕的情况之一,但它仍然是O(m+n)
答案 1 :(得分:2)
您可以在此处找到有关KMP算法的任何内容:
快速提取:
Knuth,Morris和Pratt发现了第一个线性时间串匹配 算法通过对天真算法的严密分析。 Knuth-Morris-Pratt算法保留了天真的方法 在扫描文本期间浪费了。通过避免这种浪费 信息,它实现了O(n + m)的运行时间,这是最佳的 在最糟糕的情况下。 也就是说,在最糟糕的情况下,Knuth-Morris-Pratt 算法我们必须检查文本中的所有字符和 模式至少一次。
您应该能够理解您对算法的理解并找到您需要的内容。
希望有所帮助