- 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
- 印刷电路板(PCB)废水的分类特征与处理技术的深度剖析.docx
- 2025年云南省昆明八中中考物理一模试卷及解析.docx
- 2025年云南省昆明市官渡一中中考物理一模试卷及解析.docx
- 限制航道内单船通过能力的多维度剖析与提升策略研究.docx
- 探秘BiFeO3:制备工艺与磁电性能的深度剖析.docx
- 国内上市公司定向增发定价水平及市场效应的深度剖析与实证研究.docx
- 交流变频调速系统电机端过电压:精准量化、深度剖析与高效抑制策略.docx
- 上市公司关联交易控制权:理论、实践与优化路径探究.docx
- 2025年中考物理高频易错考前预测题电磁学(含解析).docx
- 环境光照恢复与材质估计联合优化:算法创新与应用拓展.docx
最近下载
- 古树名木管护技术规范(试行,办生字〔2024〕211 号印发).pdf
- 人教PEP版英语三年级上册Unit 4 Plants around us大单元教学设计.doc
- 机械制造基本工艺学专业课程设计张紧轮支架.docx VIP
- 精神科护理交接班.pptx VIP
- 苏州科技大学天平学院《国际物流》2022-2023学年第一学期期末试卷.doc VIP
- 2023年北京市人大附中小升初分班考试数学试卷及答案解析.docx VIP
- 科研项目经费审计方案.DOC VIP
- 费用报销单电子版(适用小规模,一般纳税人).docx
- 科研项目经费审计:流程、风险与合规性评价.docx VIP
- 口腔种植一期手术及术前准备.pptx
文档评论(0)