下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医药专业知识测试药品管理与临床应用分析题
- 2026年电子商务系统集成项目质量把控测试题
- 宫颈疾病的诊治课件
- 2026年浙江长征职业技术学院单招职业技能考试模拟试题含详细答案解析
- 2026年南开大学滨海学院单招综合素质笔试备考试题含详细答案解析
- 2026年齐齐哈尔高等师范专科学校单招职业技能考试备考试题含详细答案解析
- 2026年大庆市中医医院招聘4人参考考试题库及答案解析
- 2026年揭阳职业技术学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年安徽邮电职业技术学院单招职业技能考试模拟试题含详细答案解析
- 2026年漳州城市职业学院单招综合素质考试备考题库含详细答案解析
- T-CCCTA 0056-2025 纤维增强纳米陶瓷复合卷材耐蚀作业技术规范
- 孕妇营养DHA课件
- 2025年湖北烟草专卖局真题试卷及答案
- 2025-2026学年广东省广州113中学八年级(上)期中语文试卷
- 浙江省台金七校联盟2025-2026学年高一上学期11月期中联考语文试题含答案
- 生物质发电安全运行方案
- 2025-2026学年高考二轮化学精准复习:电解质溶液(课件)
- 实施指南(2025)《EJT 20050-2014 非反应堆核设施通风系统的设计及运行准则》
- 2026届江西省南昌二中学物理九年级第一学期期末考试试题含解析
- 新安全生产法2025完整版
- ESG理论与实务 课件 第7-12章 ESG 信息披露- ESG的全球行动
评论
0/150
提交评论