摘要: 其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。假设主串:s: ‘s(1) s(2) s(3) ……s(n)’ ; 模式串 :p: ‘p(1) p(2) p(3)…..p(m)’继续现在我们假设 主串第i个字符与模式串的第j(j<=m)个字符“失配”后,主串第i个字符与模式串的第k(k<j)个字符继续比较此时,s( 阅读全文
posted @ 2012-02-13 19:28 logzh 阅读(261) 评论(0) 推荐(0) 编辑