- 3
- 0
- 约1.8千字
- 约 5页
- 2015-08-15 发布于湖北
- 举报
KMP字符串(DOC可编).doc
KMP算法过程
KMP,也就是字符串的匹配算法,这个KMP不是电脑上的那种播放器,KMP是D.E.Knuth与V.R.Pratt和J.H.Morris 我们来看看KMP是怎么工作的。我们用两个指针i和j分别表示,A[i-j+ 1..i]与B[1..j]完全相等。
也就是说,i是不断增加的,随着i的增加j相应地变化,且j满足以A[i]结尾的长度为j的字符串正好匹配B串的前 j个字符(j当然越大越好),现在需要检验A[i+1]和B[j+1]的关系。当A[i+1]=B[j+1]时,i和j各加一;
什么时候j=m了,我们就说B是A的子串(B串已经整完了),并且可以根据这时的i值算出匹配的位置。当A[i+1]B[j+1],KMP的策略是调整j的位置(减小j值)使得A[i-j+1..i]与B[1..j]保持匹配且新的B[j+1]恰好与A[i+1]匹配(从而使得i和j能继续增加)。
注:蓝色段落转自
OK,模拟KMP算法过程!
A[]=abcaabababaca
B[]=ababc
(本来想写成Pascal格式的,但是写了之后还是觉得C语言的形式比较好写,将就着看吧)
在这看来,这个一对字符串是没有匹配位置的,这都不管,能匹配的话大家都能看出,我们这要的是遇到那些不能匹配的时候的过程
初始化状态...
在这里,我们要做的第一个条件是求出NEXT指针,这个NEXT指针是在子串上做的,就是子串的自匹
您可能关注的文档
最近下载
- 14J105 烧结页岩砖、砌块墙体建筑构造.pdf VIP
- 2024-2025学年初中信息技术(信息科技)青岛版(2024)第一册教学设计合集.docx
- 化学品泄漏处理措施培训课件.pptx
- 三芳基膦配体促进Karstedt催化剂催化硅氢加成反应研究.pdf VIP
- ACS-Pt-10Karstedt铂金催化剂.doc VIP
- 日电产三协伺服达使用说明书.pdf VIP
- 小学幼儿园正方体的11种展开图(打印版)-趣味版.pdf VIP
- 畜禽解剖生理5消化系统课件.ppt
- 20、张 博--绿色功能化生物基聚氨酯农药微胶囊的创新实践与应用.pdf VIP
- 绿色微胶囊油性Karstedt Catalyst-pt在单组份有机硅粘接剂的应用与产业化.pdf VIP
原创力文档

文档评论(0)