繁体   English   中英

是否存在具有不同空间复杂度的多种 KMP 算法方法? 有什么区别?

[英]Are there multiple KMP algorithmic approaches with different space complexities? What is the difference?

我正在阅读有关KMP substring 搜索算法的信息,我在网上找到的示例使用一维表来构建前缀信息表。
我还阅读了 Sedgewick 的解释,他使用二维数组来构建表格,并明确指出 KMP 的空间复杂度为O(RM) ,其中R是字母大小, M是模式大小,而其他地方都指出空间复杂度仅为O(M + N) ,即要处理的文本和图案大小本身。
所以我对差异感到困惑。 是否有多种 KMP 算法方法? 他们有不同的 scope 吗? 或者我错过了什么?
如果一维也能解决 substring 问题,为什么还需要二维呢?

我猜 Sedgewick 想演示 KMP 的一种变体,它在该术语的标准意义上构造一个确定性有限自动机。 这是一个奇怪的选择,(正如您所观察到的)会使运行时间膨胀,但也许有一个我不欣赏的令人信服的教学原因(然后我的博士学位又是关于算法的,所以......)。 我会找到另一个更接近原文的描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM