4数据结构第四节.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从匹配过程看: 首先在(a)中p1=s1,p2=s2,p3≠s3,只需将模式右移到s3,不需将主串回溯到s2; 其次,由于p1≠p2,可推出p1≠s2,做(b)的比较一定不等;?再由p1=p3,可以推出p1≠s3,做(c)的比较也一定不等。 因此,由(a)便可直接将P右移三位跳到(d),从p1和t4开始进行比较,这样的匹配过程对S(主串)而言就消除了回溯。 为要找到一个无回溯的匹配算法,关键在于当匹配过程中,一旦pj和si比较不等,存在: substr(p,1,j-1)=substr(s,i-j+1,j-1) pj≠si 二、模式匹配算法 4.3 串的模式匹配算法 改进的模式匹配算法的思想: 在匹配过程中,当主串第i个字符与模式串第j个字符“失配”时,要产生模式串右移的位数和继续与主串(主串无回溯的)比较的字符,即应该用P中哪个字符和Si进行比较?把这个字符记为Pk,显然有kj,并且对不同的j,k值也不相同。这个k 值仅依赖于模式P本身前j个字符的构成,而与目标S无关。 一般用next[j]表示与j对应的k值,表明当模式中第j个字符与主串中第i个字符“失配”时,在模式中需重新和主串中第i字符进行比较的字符的位置。 二、模式匹配算法 4.3 串的模式匹配算法 二、模式匹配算法 4.3 串的模式匹配算法 s1 s2……………..si-k+1……..si-1 si si+1……sn p1p2……pk-1 pk.pj-k+1 …………pj-1 pj pj+1…..pm 假设此时应与模式串中第k个字符继续比较,则模式中前k-1个字符的子串必须满足下列关系: “p1p2…pk-1”=“si-k+1si-k+2…si-1” 由部分匹配知: “pj-k+1pj-k+2…pj-1”=“si-k+1si-k+2…si-1” 推得: “p1p2…pk-1”= “pj-k+1pj-k+2…pj-1” next[j]= 0 当j=1时 Max{k|1kj且“p1p2…pk-1”= “pj-k+1pj-k+2…pj-1” 1 其它情况 例: ?i=3 第一趟匹配 a b a b c a b c a c b a b a b c a c ?j=3 next[3]=1 ?i —? ?i=7 第二趟匹配 a b a b c a b c a c b a b a b c a c ? —? ?j=5 next[5]=2 j=1 ?i —? ?i=10 第三趟匹配 a b a b c a b c a c b a b a b c a c ?j=2 二、模式匹配算法 4.3 串的模式匹配算法 其意义在于: 若next[j]0表示一旦匹配过程中Pi 与Si 比较不等,可用模式中next[j]为下标的字符与Si 进行比较; 若next[j]=0表示P中任何字符都不必再与Si 进行比较,而从Si+1开始 。 对于任何模式P,主要的是要确定next[j](j=1,2,3…m)值,next[j] 确定了,就可以加快匹配的过程。 当Pj ≠Si时,P直接右移j-next[j]个字符,或者说P从next[j]开始与Si 继续比较下去。 二、模式匹配算法 4.3 串的模式匹配算法 * * 第四章 串 本章主要内容: 1.串的概念 2.串的抽象数据类型定义 3.串的表示和实现 4.串的模式匹配 本章学习目的和要求 1.掌握基本操作中的五种操作的实现 2.重点掌握串的模式匹配算法 第四章 串 4.1 串类型的定义 4.2 串的表示和实现 4.3 串的模式匹配算法 4.1 串类型的定义 一、串的定义 二、串抽象数据类型定义 一、串的定义 4.1 串类型的定义 1.串(String)——是由零个或多个字符组成的有限序列。 记为:s=”a1a2…an” (n≥0) 其

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档