KMP算法:
KMP算法主要用于判断字符串f是不是另一个字符串O的子串。利用f串的next数组或者nextval数组可以实现性能的大幅度提高。主要有两个步骤:
1、对f串,求其next数组或者nextval数组,复杂度O(m);
2、将f串元素依次与O串元素比较,出现不匹配的元素,假设是f[j],则将f串向前移动next[j]位,并从f[next[j]]处开始将f串元素继续与O串元素比较,复杂度O(n+m)。
以下是我在学习KMP算法的过程中看过的非常不错的文章,现在分享给大家:
从原理上讲解KMP算法最清楚的文章,英文,没有代码实现细节。
讲解得很清楚明了,中文,没讲代码实现。
(3)、
http://m.baidu.com/from=2001a/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1003%2Cta%40iphone
讲解得最全面还有代码实现的详细解释。
KMP时间复杂度分析。
除了KMP之外,其他的字符串匹配算法讲解。