下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 KMP的扩展 n n n 扩展KMP算法即利用已得到的信息来减少冗余的比较。 给定母串S,和子串T。 定义n=|S|, m=|T|,extendi=Si.n与T的最长公共 前缀长度。请在线性的时间复杂度内,求出所有的 extend1.n。例如S=aaaaaaaaaabaaa, T=aaaaaaaaaaa。 n n extend2=9。为了计算extend2,我们是不是也要进 行10次比较运算呢?不然。 因为通过计算extend1=10,我们可以得到这样的信息: S1.10=T1.10 S2.10=T2.10。 2015/8/6 6 n n n n 计算extend2的时候,实际上是S2开始匹
2、配T。因为 S2.10=T2.10,所以在匹配的开头阶段是“以T2.10 为母串,T为子串”的匹配 设辅助函数nexti表示Ti.m与T的最长公共前缀长度。 对上述例子,next2=10。也就是说:T2.11=T1.10; T2.10=T1.9;S2.10=T1.9。这就是说前9位的 比较是完全可以避免的!我们直接从S11T10开始 比较。这时候一比较就发现失配,因此extend2=9。 下面提出一般的算法。 设extend1.k已经算好,并且在以前的匹配过程中到达 的最远位置是p。最远位置严格的说就是i+extendi-1的 最大值,其中i=1,2,3,k;不妨设这个取最大值的i是a。 (下图黄色表示已经求出来了extend的位置 2015/8/6 7 2015/8/6 8 n n n n 整个算法描述结束。 上述算法是线性算法。原因如下: 容易看出,在计算的过程中,凡是访问过的点,都 不需要重新访问了。一旦比较,都是比较以前从不曾探 访过的点开始。因此总的时间复杂度是O(n+m,是线性 的。 还剩下一个问题:next这个辅助数组怎么计算?复杂 度是多少?我们发现计算next实际上以T为母串、T为 子串的一个特殊“扩展的KMP”。用next本身计算next, 具体可以参考标准KMP。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石家庄市平山县2025-2026学年第二学期五年级语文第七单元测试卷(部编版含答案)
- 2026年供热企业竞聘考试试题及答案
- 2026年物流管理实务考试及答案
- 可持续生活行动承诺书示例(3篇)
- 中老年健康生活方式手册
- 设计后期维护与改进指南
- 2026初中互助教育第一课课件
- 提高办公效率的策略研究报告
- 中小企业财务管理风险防控策略分析报告
- 工作职责担当尽责承诺书范文5篇
- 2026年面部刮痧养生法实操教程课件
- 老旧小区改造监理规划
- 2025年信阳职业技术学院单招职业技能考试试题及答案解析
- 保洁保安岗位职责培训
- 老年骨折术后快速康复(ERAS)策略
- 常州2025年江苏常州市锡剧院公开招聘企业用工工作人员5人笔试历年参考题库附带答案详解
- 并购项目尽职调查清单及风险提示模板
- 下肢静脉血栓诊疗指南
- 金河乳业市场调研汇报及战略建议报告
- 新解读(2025)《JB-T 9214-2010无损检测 A型脉冲反射式超声检测系统工作性能测试方法》
- 江苏省专升本2025年民族学民族区域自治法试卷(含答案)
评论
0/150
提交评论