导航:首页 > 源码编译 > 数据结构中kmp算法

数据结构中kmp算法

发布时间:2025-03-28 19:03:30

❶ kmp算法什么意思

KMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。
在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组,next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。
对于next[]数组的定义如下:
1) next[j] = -1 j = 0
2) next[j] = max(k): 0<k<j P[0...k-1]=P[j-k,j-1]
3) next[j] = 0 其他
如:
P a b a b a
j 0 1 2 3 4
next -1 0 0 1 2
即next[j]=k>0时,表示P[0...k-1]=P[j-k,j-1]
因此KMP算法的思想就是:在匹配过程称,若发生不匹配的情况,如果next[j]>=0,则目标串的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配;若next[j]=-1,则将i右移1位,并将j置0,继续进行比较。

阅读全文

与数据结构中kmp算法相关的资料

热点内容
为什么app搜索不到口袋觉醒 浏览:913
php光速入门 浏览:483
linuxapache不解析php 浏览:197
什么app可以视频唱歌 浏览:404
电子投标加密狗 浏览:501
A8平衡车连接什么APP 浏览:571
vc6文件夹怎么找文件 浏览:794
安卓手机怎么下载不了战地风云 浏览:964
休息pdf 浏览:436
闻泰服务器事业部怎么样 浏览:208
香皂解压玩法视频 浏览:874
idea运行main方法不编译整个项目 浏览:516
android获取gps位置 浏览:493
调整文件夹的分辨率 浏览:267
单片机的ic是什么 浏览:170
app无法注销账号有什么影响 浏览:96
传奇下载下来怎么是个加密文件 浏览:7
日立压缩机型号对照表 浏览:367
佑华单片机编译器 浏览:247
欠条pdf 浏览:821