详讲KMP算法

Posted qzhc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详讲KMP算法相关的知识,希望对你有一定的参考价值。

两个字符串:

    模式串:ababcaba

    文本串:ababcabcbababcabacaba

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

 

如果是穷举法的方式:

技术图片

 

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

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

 

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

技术图片

 

 

 

 

 

 

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

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

技术图片

 

 

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

技术图片

 

以上是关于详讲KMP算法的主要内容,如果未能解决你的问题,请参考以下文章

kmp算法详解

什么是KMP算法?KMP算法推导

KMP算法及KMP算法的应用(POJ2406)

KMP算法

kmp算法

kmp算法