摘要: 字符串匹配有很多算法,最简单的算法就是从模式P的开头(j=0)和主串S的某个位置开始进行比较(i),如果相等(p[j] == s[i]),则比较模式串的下一个位置和主串的下一个位置(++j;++i),如果不相等(p[j] != s[i]),则要发生回溯,从主串的位置i-j重新开始匹配,这样速度会收到影响( i = i-j+1; j=0 )。 KMP算法的优势即在于避免了回溯,当模式串j和主串i位置的字符不匹配时,查询一个数组next,从模式串位置p[ next[j] ]开始和主串的i位置开始匹配,这样主串就没有回溯,速度也就加快了,那么如何计算next数组呢? 首先对nex... 阅读全文
posted @ 2012-04-03 15:56 追风人 阅读(213) 评论(0) 推荐(0) 编辑