码迷,mamicode.com
首页 > 编程语言 > 详细

详讲KMP算法

时间:2019-10-13 13:23:09      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:使用   nbsp   alt   文本   abc   ababc   匹配   移动   算法   

两个字符串:

    模式串:ababcaba

    文本串:ababcabcbababcabacaba

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

 

如果是穷举法的方式:

技术图片

 

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

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

 

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

技术图片

 

 

 

 

 

 

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

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

技术图片

 

 

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

技术图片

 

详讲KMP算法

标签:使用   nbsp   alt   文本   abc   ababc   匹配   移动   算法   

原文地址:https://www.cnblogs.com/qzhc/p/11665886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!