永发信息网

kmp算法什么意思?

答案:3  悬赏:0  手机版
解决时间 2021-02-23 00:25
kmp算法什么意思?
最佳答案
一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。
完全掌握KMP算法思想
学过数据结构的人,都对KMP算法印象颇深。尤其是新手,更是难以理解其涵义,搞得一头雾水。今天我们就来面对它,不将它彻底搞懂,誓不罢休。
如今,大伙基本上都用严蔚敏老师的书,那我就以此来讲解KMP算法。(小弟正在备战考研,为了节省时间,很多课本上的话我都在此省略了,以后一定补上。)
严老的《数据结构》79页讲了基本的匹配方法,这是基础。先把这个搞懂了。
80页在讲KMP算法的开始先举了个例子,让我们对KMP的基本思想有了最初的认识。目的在于指出“由此,在整个匹配的过程中,i指针没有回溯,”。
全部回答
一种改进的字符串匹配算法,由d.e.knuth与v.r.pratt和j.h.morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称kmp算法)。 完全掌握kmp算法思想 学过数据结构的人,都对kmp算法印象颇深。尤其是新手,更是难以理解其涵义,搞得一头雾水。今天我们就来面对它,不将它彻底搞懂,誓不罢休。 如今,大伙基本上都用严蔚敏老师的书,那我就以此来讲解kmp算法。(小弟正在备战考研,为了节省时间,很多课本上的话我都在此省略了,以后一定补上。) 严老的《数据结构》79页讲了基本的匹配方法,这是基础。
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): 00时,表示P[0...k-1]=P[j-k,j-1]  因此KMP算法的思想就是:在匹配过程称,若发生不匹配的情况,如果next[j]>=0,则目标串的指针i不变,将模式串的指针j移动到next[j]的位置继续进行匹配;若next[j]=-1,则将i右移1位,并将j置0,继续进行比较。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
王墘村这个地址在什么地方,我要处理点事
何谓方便旗船舶?
黑钛会生锈吗
手机微信马赛克怎么打
1999年旧历四月十八是什么星座
自1990年以来,人口增长幅度最大的省是A.河南
东兴宾馆这个地址在什么地方,我要处理点事
裤子静电是不是质量问题
佛山市上铝门窗有限公司怎么去啊,有知道地址
请问如果你父母在美国工作,小孩也要去美国学
南昌市进贤县钟陵乡有多少人口有谭丽芳人吗?
有必要为了羊腿羊排买烤箱吗
仪征哪里有华为为修点
安徽金陵大饭店地址在哪,我要去那里办事
推荐一部穿越时空的电影 就像把现代的高科技
推荐资讯
松下DVD的影碟机摇控器是不是都可以供用呢
久月寿司石锅拌饭地址在什么地方,想过去办事
九门寨石锅鱼休闲庄怎么去啊,有知道地址的么
求太原地区高仿手机批发渠道
手机上的onenote徽章是什么?怎么用
灵宝市司法局豫灵司法所在什么地方啊,我要过
请问携程网上订的机票原始价格包不包括保险,
西溪湿地属于农耕区的人工湿地还是平原地区的
爱的泡芙★马卡龙(万达店)在什么地方啊,我要
大专文凭的软件开发专业就业好吗
橡皮筋编织手链 蛇形手环怎么编
吃瓜子会容易长胖吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?