摘要: 上一节的利用有限自动机的匹配算法需要O(m|∑|)的预处理时间,因为预先已经把转移函数计算出来。而KMP算法则是将计算转移函数时需要的信息存储在数组π[1..m]中,按照即时的需要计算状态转移函数,这样可以把预处理时间减少到O(m),而匹配时间仍然是O(n)。Knuth-Morris-Pratt 算法 首先简单看一下朴素字符串匹配算法的过程。假设模式P = ababaca,图(a)是针对文本T模板的一个特定偏移s。 此时前5个字符匹配成功,第6个失败,这时已经匹配的前5个字符其实已经蕴含了下一个偏移可以利用的一些信息。如图,偏移s + 1必然无效,因为模式P前2个字符不等而第2个字符... 阅读全文
posted @ 2013-11-29 08:51 Jolin123 阅读(451) 评论(0) 推荐(0) 编辑