摘要: KMP算法是非常经典的字符串匹配算法,而且有可能是最经典的一个。同时它也是非常典型的一种优化算法,它把原本暴力法O(mn)的最坏复杂度降低到了O(m+n)(虽然实际上暴力法的执行复杂度期望依然是线性的),其思想非常具有典型性和可借鉴性,值得好好学习。1 基本思想KMP算法的基本思想是,借助一个预先计算好的数组pi,在匹配了一定数量的模式的情况下,遇到不匹配的字符时,不像暴力法那样将待匹配的文本下标从上一次匹配的地方向后移动一个位置,并将已匹配的模式个数清零,而是利用已经匹配部分的信息,迅速跳过那些不可能匹配成功的文本开头,减少了暴力法中一些不必要的盲目搜索。比如,对于模式0 1 2 3 4 5 阅读全文
posted @ 2012-10-27 10:30 waytofall 阅读(1942) 评论(2) 推荐(1) 编辑