详讲KMP算法

两个字符串:

    模式串:ababcaba

    文本串:ababcabcbababcabacaba

KMP算法作用:快速在文本串中匹配到模式串

 

如果是穷举法的方式:

 

 大家有发现,这样比效率很低的。

所以就需要使用一种高效率模式的算法:KMP算法。

 

大家有看到上面的穷举法,是一位一位的挪。那可以一次挪多位不就行了。像下面:

 

 

 

 

 

 

那么为什么可以这样挪呢?  模式串向右移动的距离 = 已匹配字符数 - 失配字符的上一位字符所对应的最大长度值

那么我们要怎么找出每位上的最大长度值呢呢?   我们来找一下。

 

 

所以,使用KMP算法进行挪位:

 

posted on 2019-10-13 12:19  Hi,Bro  阅读(206)  评论(0编辑  收藏  举报