- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
KMP演示
KMP字符串匹配 串类型的定义 非数值处理的对象基本上是字符串数据 串(string)(或称字符串)---- 由零个或多个字符组成的有限序列 记为: s = ‘a1a2...an’ (n=0) ai(1=i=n)是字母,数字或其它字符 n称为串的长度,n=0的串称为空串(Null string) 子串----串中任意个连续字符组成的子序列 包含子串的串叫主串 子串在主串中的位置 ---- 子串的第一个字符在主串中的序号 串的例子 例如:a,b,c,d 四个字符串为 a=‘BEI’ , b=‘JING’ c=‘BEIJING’ , d=‘BEI JING’ 它们的长度分别为 3,4,7,8 a和b都是c和d的子串 a在c和d中的位置都是1 b在c中的位置是4,而b在d中的位置是5 注意:单引号是为字符串区别于变量名而设,它不是字符串的内容 称两个串是相等的 --- 当且仅当这两个串每个字符对应相等 串的模式匹配算法 1.求子串位置的定位函数 Index(S, T, pos) 采用定长顺序存储结构,不依赖其他串操作的匹配算法: 简单匹配算法的匹配过程示例 例如 T=“abcac”; S=“ababcabcacbab” 第一趟匹配 a b a b c a b c a c b a b (i=3) a b c (j=3) 第二趟匹配 a b a b c a b c a c b a b (i=2) a (j=1) 第三趟匹配 a b a b c a b c a c b a b (i=7) a b c a c (j=5) 第四趟匹配 a b a b c a b c a c b a b (i=4) a (j=1) 第五趟匹配 a b a b c a b c a c b a b (i=5) a (j=1) 第六趟匹配 a b a b c a b c a c b a b (i=11) a b c a c (j=6) 成功! 简单匹配算法的复杂度分析 设n = StrLength(S);m = StrLength(T); 最好情况的复杂度为O(n+m),如 T = “STING” S = “A STRING SEARCHING EXAMPLE CONSISTING OF SIMPLE TEXT” 最坏情况的复杂度为O(n*m),如 T = S = “00000000000000000000000000000000000000000000000001” 模式匹配的一种改进算法(KMP算法) KMP算法的改进在于: 每一趟匹配过程中出现字符比较不等时,不需要回朔i指针 只要利用已经“部分匹配”结果,调整j指针,即将模式向右滑动尽可能远的一段距离,来个提高算法效率. 上例的KMP算法匹配过程示意如下 第一趟匹配 a b a b c a b c a c b a b (i=3) a b c (j=3) 第二趟匹配 a b a b c a b c a c b a b (i=3 - 7) a b c a c (j=1 - 5) 第三趟匹配 a b a b c a b c a c b a b (i=7 - 11) (a)b c a c (j=2 - 6) 显然算法复杂度为O(n+m) KMP算法的基本思想(一) 假设主串为S=“s1s2...sn”,模式串为T=“t1t2...tm” 我们要解决的问题是:当“失配”(si?tj)时,模式串T”向右滑动”的可行距离有多远;或者说,下一步si应该与模式串中的哪个字符比较? 可以推断:答案将完全取决于模式串,而与主串无关 因此,可以预先为模式串设定一个数组next[j],当“失配”(si?tj)时,i不变,j改为next[j] 前面例子的 next[j] 是: KMP算法的匹配过程示例 另一个模式串的例子是: 任选一主串举例如下: 第一趟a c a b a a b a a b c a c a a b c (i=1..2
您可能关注的文档
- keys to 学术英语(理工)_Unit 2.ppt
- Keys to 视听说Book 4-4.ppt
- kids box1 第11单元.ppt
- kids box1第10单元.ppt
- Kin terms跨文化交际.ppt
- King John&Magna Carta英国大宪章详细介绍.pptx
- KING KONG新.ppt
- King John约翰王.ppt
- KingSCADA web发布.doc
- KK_English例句.doc
- 吊篮危大工程专项施工方案.docx
- 6月工作总结及7月计划6篇.docx
- 幼儿园采购员工作总结PPT.pptx
- 小学教科处工作总结(2024年-2024年学年)8篇.docx
- 专题11 重点语法冠词100题(名校必威体育精装版真题)-2021-2022学年八年级英语下学期期末复习查缺补漏冲刺满分(牛津上海版).docx
- 安全工作总结开头.docx
- 学生会工作总结 学生会卫生部总结6篇.docx
- 2024年小学学校少先队工作总结范文8篇.docx
- 中班幼师个人工作计划7篇.docx
- 专题11.八年级上册:Unit 1语法及写作 知识梳理与精练(教师版)--2021-2022学年七年级英语暑假知识点巩固与衔接大礼包(牛津译林版).docx
最近下载
- 慢性阻塞性肺病伴有急性下呼吸道感染护理查房.pptx
- 肺结核合并糖尿病(共23张PPT)【23页】.pptx
- 慢性阻塞性肺疾病护理疑难病历讨论.pptx VIP
- 安全管理体系与措施及环境保护管理体系与措施 .doc VIP
- 食材配送分拣管理制度内容.docx VIP
- 上汽通用雪佛兰-迈锐宝XL-产品使用说明书-全混动锐尊版-SGM7186EACHEV-17MYCHE2SCSOM26248143_20170629.pdf
- (完整版)软件项目开发计划书.pdf
- 增程式燃料电池电动汽车动力系统设计研究.pptx VIP
- 【增程式电动汽车能量管理策略研究开题报告文献综述5600字】.doc VIP
- 牛津上海版小学英语5年级下册 Module 3 Unit 3 Changes 公开课PPT课件12.ppt
文档评论(0)