- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法导论之字符串匹配算法剖析
字符串匹配算法;我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。;简单字符串匹配;目标是找出所有在文本T=abcabaabcaabac中的模式P=abaa所有出现。
该模式仅在文本中出现了一次,在位移s=3处。位移s=3是有效位移。;n = length(T)m = length(P)
int flag=1;for(s = 0 ; s n-m ; s++)
{
flag=1;
for(i = 0 ; i m ; i++)
{
if (P[i] != T[s+i]) {flag=0;break;}
}
if(flag) {cout s; break;}
}???????;简单的字符串匹配算法用一个循环来找出所有有效位移,该循环对n-m+1个可能的每一个s值检查条件;简单字符串匹配算法,上图针对文本T=acaabc 和模式P=aab。
n-m+1个可能的位移s中的每一个值,比较相应的字符的循环。
所以,在最坏情况下,此简单模式匹配算法的运行时间为O((n-m+1)m)。;对于目的字串T是banananobano,要匹配的字串P是nano的情况
只要P字串第一个字符先和T字串的第一个字符比较,如果相同就比较下一个,如果不同就把P右移一下,之后再从P的每一个字符比较,这个算法的运行过程如下图。;nano;KMP算法;;;覆盖函数所表征的是P本身的性质,可以让为其表征的是P从左开始的所有连续子串的自我覆盖程度。比如如下的字串;由于计数是从0始的,因此覆盖函数的值为0说明有1个匹配,其中-1表示没有覆盖,那么何为覆盖呢,下面比较数学的来看一下定义,比如对于序列
?
a[0]a[1]...a[j-1]a[j]
?
要找到一个k,使它满足
a[0]a[1]...a[k-1]a[k]=
a[j-k]a[j-k]...a[j-1]a[j]
而没有更大的k满足这个条件,就是说要找到尽可能大k,使P前k字符与后k字符相匹配,k要尽可能的大,原因是如果有比较大的k存在,而我们选择较小的满足条件的k,;在红色部分失配,正确的结果是k=1的情况,把P右移4位,如果选择k=0,右移5位则会产生错误。计算这个overlay函数的方法可以采用递推,可以想象如果对于pattern的前j个字符,如果覆盖函数值为k
a[0]a[1]...a[k-1]a[k]=
a[j-k]a[j-k+1]...a[j-1]a[j];则对于pattern的前j+1序列字符,则有如下可能⑴???? P[k+1]==P[j+1]
此时
overlay(j+1)=k+1=overlay(j)+1;⑵???? P[k+1]≠P[j+1] 此时只能在P前k+1个子符组成的子串中找到相应的overlay函数,h=overlay(k),如果此时P[h+1]==P[j+1],则overlay(j+1)=h+1否则重复(2)过程.;;有了覆盖函数,那么实现kmp算法就是很简单的了,我们的原则还是从左向右匹配,但是当失配发生时,我们不用把index向回移动,index前面已经匹配过的部分在P自身就能体现出来当发生在j长度失配时,只要把P向右移动j-overlay(j)长度就可以了。; ;BM 算法;后移位数 =
坏字符的位置 - 有哪些信誉好的足球投注网站词中的上一次出现位置;好后缀;好后缀规则;最好时间复杂度是O(n/m);SUNDAY算法;谢 谢
您可能关注的文档
- 简约色彩图标.pptx
- 金版学案2016_2017学年高中语文第二单元孟子蚜七仁义礼智我固有之新人教版选修先秦诸子.ppt
- 金版学案2016_2017学年高中语文第一单元论语蚜三知之为知之不知为不知.ppt
- 简谐振动特性研究与弹簧劲度系数测量.ppt
- 金正昆商务礼仪--(完整精华版).ppt
- 简谈如何备课.ppt
- 专题复习之--文化第二单元__文化传承与创新.ppt
- 简述土壤污染及其防治措施.docx
- 金版导学案2.1复习.ppt
- 金牌班组长.ppt
- 【重庆市S街道家庭医生签约服务现状调研分析报告6000字】.docx
- 八年级生物下册教学课件《选择健康的生活方式》.pptx
- 高中高考思想政治一轮总复习课后习题 选择性必修一 当代国际政治与经济 课时规范练30 和平与发展 (2).doc
- 企业社保费申报流程(核定版).docx
- 高中高考思想政治一轮总复习课后习题 选择性必修一 当代国际政治与经济 课时规范练31 中国的外交 (2).doc
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第1单元 各具特色的国家 第一单元过关检测.doc
- 第6章 生物的进化B卷 能力提升—高一生物学人教版(2019)必修二单元达标测试卷.docx
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第2单元 世界多极化 第4课 和平与发展 第2框 挑战与应对 (2).doc
- 高中思想政治选择性必修1当代国际政治与经济课后习题 第3单元 经济全球化 第6课 走进经济全球化 第2框 日益开放的世界经济.doc
- 【泰安交通建设集团人力资源管理模式研究4900字】.doc
文档评论(0)