下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024绿化带杂草管理协议样本
- 2024年适用租车服务协议综合范例
- 2024年工程项目食堂供应承包协议
- 2024年土建工程协议示范文本
- 2024在线支付安全规范SET协议
- 2024年个人贷款协议模板大全2
- 医生聘用合同的岗位职责
- 2024年师徒合作协议范本下载
- 2024年度西安二手房销售协议模板
- 2024年金融领域反担保协议参考样式
- 期中模拟(1-3单元)(试题)-2024-2025学年六年级上册数学苏教版
- 点亮文明 课件 2024-2025学年苏少版(2024)初中美术七年级上册
- 廉政法规知识测试及答案
- 托育服务中心项目可行性研究报告
- 2024内蒙古农牧业融资担保限公司招聘28人高频难、易错点500题模拟试题附带答案详解
- 5.1 延续文化血脉 课件-2024-2025学年统编版道德与法治九年级上册-2
- 湖北省襄阳市2023-2024学年六年级上学期语文期中考试试卷(含答案)
- 2024-2030年中国CCUS技术行业现状调查与前景策略分析研究报告
- 2024-2025形势与政策:七十五载砥砺奋进创辉煌 中国式现代化继往开来兴伟业
- “数字城市”公共智慧底座项目解决方案
- 二年级数学上册教案 4、除法的初步认识 苏教版
评论
0/150
提交评论