下载此文档

第六章字符串处理算法.ppt


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
-:字符串精确匹配(ExactStringMatching)问题可以描述如下:给定一个长字符串T和一个短字符串P,其中它们的长度分别是|T|=m,|P|=n,利用最理想的时间和空间找出全部的T中与P完全匹配的子串****惯的表示方法:字符串T/P中的第i个字符用T(i)来表示。-box算法[定义]Zi(S)表示在字符串S中从第i位起与S的前缀匹配的最长的字符串的长度。(数值)注:如果S在上下文中很明显,Zi(S)可以用Zi来表示。例:S=aabcaabxaaz那么12345678Z5(S)=3;Z6=1;Z7=Z8=0Z-box:其中每个与前缀匹配的子串就叫一个Z-box。对于任意数字i,如果S(i)属于某一个Z-box,则定义Li表示该Z-box的最左端的位置,Ri表示该Z-box的最右端的位置。例:在上例中L6=5R6=7性质:ifi>j,thenRi>=Rj[任务]在线性时间内(O|S|)计算S的所有Zi[思想]Z2正常计算,然后归纳计算Zk,可以减少比较的次数[思想]令S=P$T,其中$是特殊字符,在S和T中都不存在。利用Z算法计算Zi(S)。[方案]对于任意j,如果Zn+1+j(S)=n,则P出现在T(j)处。[加强]因为$的设定,对于任意i都有Zi<n,即k`总落在P内,所以当k>n时(即在T中)Zk值不用计算,只需要维持(maintain)R和L的值。[名称]Boyer-Moore算法[特点]从左向右移动,自右向左扫描[技巧]坏字符规则 [实质]把P中的坏字符x移到T中的x的下面[定义]对于字母表中的每一个字符x,R(x)表示x在P中的最右端的位置,如果P中没有x,则R(x)=0。[规则]对于P和T,如果P右面的n-i个字符都和T匹配,但是P(i)≠T(k)。那么P可以向右移动max[1,i-R(T(k)]位。

第六章字符串处理算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sanshenglu2
  • 文件大小642 KB
  • 时间2020-10-29