数据结构电子教案第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文档。上传文档
查看更多
算法目的: BF(brute force)算法(又称经典算法、穷举算法) KMP算法(特点:速度快) 算法种类: 确定主串中所含子串第一次出现的位置(定位) 4.3 串的模式匹配算法 S : a b a b c a b c a c b a b T : a b c i j S : a b a b c a b c a c b a b T : a b c S : a b a b c a b c a c b a b T : a b c i指针回溯 BF算法设计思想 将主串S的第pos个字符和模式T的第一个字符比较, 若相等,继续逐个比较后续字符; 若不等,从主串的下一字符起,重新与模式的 第一个字符比较。 直到主串的一个连续子串字符序列与模式相等 。返回值为S中与T匹配的子序列第一个字符的序号,即匹配成功。 否则,匹配失败,返回值 0 BF算法设计思想 Index(S,T,pos) int Index(SSstring S, SSstring T, int pos){ i=pos; j=1; while (i=S[ 0 ] j =T[ 0 ]){ if ( S[ i ]=T[ j ]) {++i; ++j; } else{ i=i-j+2; j=1; } } if ( jT[ 0 ]) return i-T[0]; else return 0; } BF算法描述(算法4.5) 若n为主串长度,m为子串长度,最坏情况是 BF算法时间复杂度 主串前面n-m个位置都部分匹配到子串的最后一位,即这n-m位各比较了m次 最后m位也各比较了1次 总次数为:(n-m)*m+m=(n-m+1)*m 若mn,则算法复杂度O(n*m) 例: S=‘0000000001’,T=‘0001’,pos=1 利用已经部分匹配的结果而加快模式串的滑动速度, 且主串S的指针i不必回溯!亲!可提速到O(n+m)哦! S=‘a b a b c a b c a c b a b’ T=‘a b c a c’ S=‘a b a b c a b c a c b a b’ T=‘a b c a c’ S=‘a b a b c a b c a c b a b’ T=‘a b c a c’ i i i k k a b a a b c k i i KMP算法设计思想(自主学习) 模式串t=‘abcaabbca’,该模式串的next数组的值是( ),nextval数组的值是( ) A. 0 1 1 1 2 2 1 1 1 B. 0 1 1 1 2 1 2 1 1 C. 0 1 1 1 0 0 1 3 1 D. 0 1 1 1 2 2 3 1 1 E. 0 1 1 0 0 1 1 1 0 F. 0 1 1 0 2 1 3 1 0 D F j=1 2 3 4 5 6 7 8 9 a b c a a b b c a next[j]=0 1 1 1 2 2 3 1 1 nextval[j]=0 1 1 1 0 2 2 1 3 1 1 0 每空200经验值 4.4 串操作应用举例 自主学习 进阶任务1 1.串与线性表之间有什么相似之处? 2.子串的定义是什么? 3.串有哪几种存储方式?这些方法各有什么特点? 串和线性表极为相似,区别仅在于串的数据对象约束为字符集 主串中任意个连续的字符组成的子序列 定长顺序存储表示:定长数组实现,超过预定义长度则被舍去。 堆分配存储表示:其顺序存储空间在执行中动态分配,串长无限制,灵活。 块链存储表示:每个链结点可存放多个字符,提高链表的存储密度,除连接操作外其他操作均较复杂。 进阶任务 2 请把下面名词术语翻译成英文 ? 串 空串 空格串 子串 主串 存储密度 穷举 数组 矩阵 对称矩阵 三角矩阵 对角矩阵 稀疏矩阵 广义表 string Null string Blank string Substring Master string Storage de

文档评论(0)

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

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

1亿VIP精品文档

相关文档