- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch04 String_字符串
KMP模式匹配方法 a b a b c a b c a c b a b a b c a c 主串: 模式: j=5 i=10 ? 第三趟 (起始位置:6) KMP模式匹配方法 a b a b c a b c a c b a b a b c a c 主串: 模式: i=11 j=6 第三趟 (起始位置:6) 模式串结束 KMP模式匹配方法 a b a b c a b c a c b a b a b c a c 主串: 模式: j=3 i=3 ? a b c a c j=5 i=7 a b c a c j=2 第一趟,i: 始于1,停于3 j: 始于1,停于3 第二趟,i: 始于3,停于7 j: 始于1,停于5 第三趟,i: 始于7,停于11 j: 始于2,停于6 匹配成功 i=11 序号 1 2 3 4 5 模式串 a b c a c 2 1 1 1 0 KMP模式匹配方法 a b a b a a b a b c b a b a b a b c 主串: 模式: j=5 i=5 a b a b c j=4 第一趟:i=1,j=1开始,i=5,j=5时失败 第二趟:i=5,j=3开始,i=6,j=4时失败 a b a b c j=1 i=6 j=3 a b a b c j=2 第三趟:i=6,j=2开始,i=6,j=2时失败 第四趟:i=6,j=1开始,i=11,j=6时匹配成功 j=6 i=11 j=1 j=3 序号 1 2 3 4 5 模式串 a b a b c 3 2 1 1 0 KMP模式匹配方法 KMP算法显然可以提高匹配速度 当主串中的第i个字符与模式串中的第j个不相等时,不修改主串的字符下标i,而是令模式串的第k个字符与主串的第i个字符比较,继续匹配过程,那么k等于多少?k的值如何确定? 序号j 1 2 3 4 5 模式串 a b c a c k 2 1 1 1 0 序号j 1 2 3 4 5 模式串 a b a b c k 3 2 1 1 0 序号j 1 2 3 4 5 6 7 8 模式串 a b a a b c a c k 2 1 3 2 2 1 1 0 KMP模式匹配方法 主串S: 模式串P: s1 s2 … si-j+1 si-j+2 … si-1 si+1 si … p1 p2 … pj-1 pj ‖ ‖ ‖ ‖ 一般情况下,在模式匹配过程中,当Si≠Pj时,必然有: si-j+1 = p1, si-j+2 = p2 , ... si-1 = pj-1 KMP模式匹配方法 主串S: 模式串P: s1 s2 … si-j+1 si-j+2 … si-1 si+1 si … p1 p2 … pj-1 pj ‖ ‖ ‖ ‖ KMP模式匹配方法 si-j+1 si-j+2 … si-1 si+1 si … … si-k+1 si-k+2 Pj≠Si时,下一次令Pk与Si进行比较 p1 p2 … pj-k+1 pj-k+2 … pj-1 pj ‖ ‖ 若模式中P1P2 ...Pk-1 = Pj-k+1Pj-k+2 ...Pj-1,则在Pj ≠ Si时令Si与Pk进行比较 。 pk-1 si-j+k-1 pk si-j+k ‖ ‖ ‖ ‖ … ‖ ‖ … pk p1 p2 … pk-1 ‖ ‖ ‖ 4.3 串的模式匹配 改进的串匹配算法--KMP算法 ① 当主串的第i个字符与模式串的第j个字符不同时,模式串的前(j-1)个字符与主串第i个字符前的(j-1)个字符已经比较成功。若模式串的前k-1个字符(P1P2…Pk-1)与第j个字符前的k-1个字符(Pj-k+1Pj-k+2…Pj-1)相同,则只需使模式串的第k个字符与主串的第i个字符对齐后开始比较即可,i就不必回溯(可看作是将模式串适当右移)。 si-j+1 si-j+2 … si-1 si+1 si … … si-k+1 si-k+2 p1 p2 … pj-k+1 pj-k+2 … pj-1 pj ‖ ‖ ‖ ‖ ‖ ‖ p1 p2 … pk-1 pk ‖ ‖ ‖ 4.3 串的模式匹配 改进的串匹配算法--KMP算法 ① 当主串的第i个字符与模式串的第j个字符不同时,模式串的前(j-1)个字符与主串第i个字符前的(j-1)个字符已经比较成功。若模式串的前k-1个字符(P1P2…Pk-1)与第j个字符前的k-1个字符(Pj-k+1Pj-k+2…Pj-1)相同,则只需使模式串的第k个字符与主串的第i个字符对齐,开始比较即可,i不必回溯(可看作是模式串适当右移)。 ② k的值只与模式串的组成有关,而
您可能关注的文档
- 二年级语文(人教版上册)-生字释义及成语.doc
- 100925市场营销-3.ppt
- 建筑构造中的重要概念.doc
- 11年下学期工作计划.doc
- 9.1-01采购控制程序.doc
- 选修2-1---第3章---第2节---第2课时---利用空间向量解决空间距离问题.ppt
- 2013年高一物理复习题.doc
- 马然松 水的净化 说课稿.doc
- 4.条件概率z.ppt
- 动车组制动系统(二).ppt
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)