- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与c算法设计案教程课件数据结构与c算法设计案例教程课件数据结构与c算法设计案例教程课件数据结构与c算法设计案例教程课件
一旦失配,应从模式串T中第next[ j ]个字符开始与S的失配点i重新匹配。 next[ j ]= 0 当j=1时 max { k |1kj 且‘T1…Tk-1’=‘Tj-(k-1) …Tj-1’ } 1 其他情况 图5-6 next[j]的求解 推算模式串“a b a a b c a c”的next函数值如下: j=1时, next[ j ]≡ 0;因为属于“j=1”; j=2时, next[ j ]≡ 1;因为属于“其他情况”; j=3时, k={2},只需查看‘T1’=‘T2’; j=4时, k={2,3},要查看‘T1’=‘T3’ 和‘T1T2’=‘T2 T3’ j=5时, k={2,3,4},要查看‘T1’=‘T4’ 、‘T1T2’=‘T3T4’ 和‘T1T2T3’=‘T2T3T4’ 由上面的求解可得到如下的next的求解值。 可能失配位 j: 1 2 3 4 5 6 7 8 模 式 串 T: a b a a b c a c 新匹配位 next[j] : 0 1 1 2 2 3 1 2 KMP算法在形式上与简单模式匹配算法极为相似,不同之处仅在于当匹配过程产生失败时,指针i不变,指针j退回到next[j]所指示的位置上重新进行比较,并且当指针j退回到0时,指针i和指针j需要同时增1。 下面给出串的最基本几个算法 char str1[100],str2[100]; void AdressString::StrIndex(char str1[],char str2[]) //在str1[]中寻找与str2[]一样的字符串,显示所在的位置,没有则显示无此串, //用简单模式匹配算法实现(重要) { int i=0,j=0; while(istrlen(str1) jstrlen(str2)) //用while循环进行匹配 { if(str1[i]==str2[j]) //如果当前字符相同,则继续惊醒比较 { i++; j++; } else //否则,则从开始位置的下一位置进行比较 { i=i-j+1; j=0; } } if(j==strlen(str2)) //j==strlen(str2)匹配成功 { coutstr1中包含str2!endl; cout位置为(从0开始): i-jendlendl; } else coutstr1中不包含str2!endlendl; //jstrlen(str2,)匹配不成功 } 用简单模式匹配算法实现在str1[]中寻找与str2[]一样的字符串并显示所在的位置,没有则显示“无此串”。首先,定义两个初始值为0的变量i、j,分别标记str1与str2的下标。然后,从两个字符串的开始位置,逐个匹配。若匹配成功,则i和j同时加1,否则,i赋值为开始匹配成功字符的下一个字符,j重新赋值为0。直到循环条件不成立为止。最后,判断变量j的值,若j==strlen(str2)说明匹配成功了str2中的所有字符,所在位置为i-j。 void AdressString::StrKMP(char str1[],char str2[]) //在str1[]中寻找与str2[]一样的字符串,显示所在的位置,没有则显示无此串, //用KMP算法实现(重要) { int i=0,j=0,next[100]; while(istrlen(str1) jstrlen(str2)) { if(str1[i]==str2[j]) //如果当前字符相同,则继续进行比较 { i++; j++; } else j=getnext(next); } couti= iendl; if(j==strlen(str2)) //j==strlen(str2)匹配成功 { StrIndex(str1,str2); } else coutstr1中不包含str2!endlendl; //jstrlen(str2),匹配不成功 } 用KMP算法实现在str1[]中寻找与str2[]一样的字符串并显示所在的位置,没有则显示无此串。首先,定义两个初始值为0的变量i、j,分别标记str1与str2的下标。然后,从两个字符串的开始位置,逐个匹配。若匹配成功,则i和j同时加1,否则,i值不变,j使用函数getnext(ne
您可能关注的文档
- 试卷评估2013试卷评估213013.doc
- 室内p6高清节能led全彩示屏现货批发厂家方案书室内p6高清节能led全彩显示屏现货批发厂家方案书室内p6高清节能led全彩显示屏现货批发厂家方案书室内p6高清节能led全彩显示屏现货批发厂家方案书.doc
- 试乘试驾流程及话术试乘试驾程及话术流程及话术.ppt
- 适合学习时听的音乐,提高学效率!适合学习时听的音乐,提高学习效率!适合学习时听的音乐,提高学习效率!适合学习时听的音乐,提高学习效率!.ppt
- 适应性练习卷(一)试卷适应练习卷(一)试卷适应性练习卷(一)试卷适应性练习卷(一)试卷.doc
- 室内光环境及清华大学学生宿光环境评价室内光环境及清华大学学生宿舍光环境评价室内光环境及清华大学学生宿舍光环境评价室内光环境及清华大学学生宿舍光环境评价.doc
- 视觉障碍的医学基础视觉障碍医学基础的医学基础.ppt
- 室分系统施工规范室分系统施规范工规范.doc
- 室内设计分类解析室内设计分解析类解析.doc
- 室内分布系统技术讲座室内分系统技术讲座室内分布系统技术讲座室内分布系统技术讲座.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
最近下载
- 2022年新高考全国Ⅰ卷英语真题.docx VIP
- 《0-3岁婴幼儿身心发展与教养》PPT教学课件.pptx VIP
- 《0-3岁婴幼儿身心发展与教养》课件06婴幼儿语言的发展及教养.pptx VIP
- 护士生涯人物访谈 .pdf VIP
- 体育职业生涯规划书课件.pptx VIP
- AB SCIEX 6500 质谱系统在食品安全中的应用.pptx VIP
- 《0-3岁婴幼儿身心发展与教养》课件05婴幼儿记忆的发展及教养.pptx VIP
- C-Primer-Plus第六版中文版习题答案.doc
- 《0-3岁婴幼儿身心发展与教养》课件09婴幼儿意志的发展及教养.docx VIP
- 新能源学生职业生涯规划与管理.pptx VIP
文档评论(0)