KMP v.s.后缀树用于子字符串匹配

时间:2015-12-03 07:29:04

标签: algorithm

想知道是否有人可以在选择KMP和后缀树之间提供一些有关利弊的建议,如果我们想查看字符串是否是另一个字符串的子字符串?感谢。

提前谢谢, 林

1 个答案:

答案 0 :(得分:2)

运行时和内存复杂性大致相同。你在O(N)中准备模式,你可以用O(M)(n,m长度的字符串)进行搜索。

后缀树可以执行一些可能对您的应用程序不必要的操作。

在KMP中,您可以准备搜索模式,然后您可以轻松地在字符串中查找它。

在后缀树中,您准备要搜索的文本,然后您可以轻松地在其中查找许多模式。即使内存使用是线性的,常量也很大,因此需要更多内存。

KMP通常比后缀树更容易编码。