网站大量收购闲置独家精品文档,联系QQ:2885784924

第4章 数组串与广义表.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数组串与广义表

* 按照BF算法:当比较到某个位置,不匹配时,不管比过的字符串是什么情况,都要进行回溯!因此,算法效率低。 假设主串为 T=‘t0t1t2...tn-1’ 模式串为 P=‘p0p1p2...pm-1’ mn 基本思想: KMP算法最大的改进之处:在匹配失败时,主串中的指针i不需要回溯,而是在模式中找出适当的字符继续比较。 改进的模式匹配—KMP算法 * 在主串的第i个字符ti与模式中pj匹配失败时,i不回退,而是在模式中找适当字符pk与ti继续比较,pk与ti pk+1与ti+1……..当然此pk不是任意的,得根据一定算法找出。 kj,为什么? … T i P j k ≠ * t0 t1 t 2 …… ti-k ti-(k-1) ti-(k-2)…. ti-2 ti-1 ti ti+1…… p0 p1 p2…pk-1 pk…. pj-k pj-(k-1) pj-(k-2)…. pj-2 pj-1 pj pj+1 Pj K K K p0p1p2…pk-1 = ti-k ti-k+1 ti-k+2… ti-2 ti-1 pj-k pj-k+1 pj-k+2… pj-2 pj-1 = ti-k ti-k+1 ti-k+2… ti-2 ti-1 p0p1p2…pk-1 = pj-k pj-k+1 pj-k+2… pj-2 pj-1 * 从以上分析可知: p0p1p2…pk-1是 p0p1…pj-1 的既是真前缀、又是真后缀的子串。(即长度小于j)当然,要求这个子串取尽可能长,这个子串越长,说明已经匹配的字符就越多。 所以,求 k 就是求 p0p1…pj-1中最长的既是真前 缀又是真后缀的子串的长度。 k与主串无关!! * 第1趟 T a b b a b a P a b a 第2趟 T a b b a b a P a b a i=2 j=2 i=1 j=0 第3趟 T a b b a b a P a b a 第4趟 T a b b a b a P a b a i=2 j=0 i=6 j=3 每趟: 主串回溯到上次起点的下一个位置; 模式串回到0 复习: * 运用KMP算法的匹配过程 第1趟 目标 a c a b a a b a a b c a c a a b c 模式 a b a a b c a c 第2趟 目标 a c a b a a b a a b c a c a a b c 模式 a b a a b c a c 第3趟 目标 a c a b a a b a a b c a c a a b c 模式 a b a a b c a c 第4趟 目标 a c a b a a b a a b c a c a a b c 模式 (a b) a a b c a c ? * 对于每个pj都求出了最长的既是真前缀又是真后缀的串长度k,那么就有:主串的某个字符与pj匹配失败时,应继续与 pk比较, k称为pj的失败函数值,记作 next[j]=k。 KMP快速匹配算法的实现 * 根据前面的分析,失败函数可以定义为: -1 当 j=0 时 ??? next[j]= max{ k | 0kj且 ‘p0p1...pk-1’=‘pj-k...pj-1’ } 非空 0 其它情况 j k k k 0 pj-k pj-1 失败函数的定义 * 利用next失败函数进行匹配处理 若在进行某一趟匹配比较时在模式 P 的第 j 位失配: 如果 j 0,那么在下一趟比较时模式串 P的起始比较位置是 pnext(j),目标串 T 的指针不回溯,仍指向上一趟失配的字符; 如果 j = 0,则目标串 T 指针进一,模式串P 指针回到 p0,继续进行下一趟匹配比较。 j 0 1 2 3 4 5

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档