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

一种单模式匹配算法.pdfVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种单模式匹配算法.pdf

续匹配。此时字符 ‘r与 ‘a’匹配不成功,d【一t】=3,模式 串右移3位。 第四步:T中的 与P中的 一t不匹配,d【‘一’】=4,模 式串右移动4位。 第五步:T中的 (_与P中的 一t不匹配,d[T‘‘’】=4, 图1 散列表 模式串右移动4位。 仍以文本串T_“which—finally—halts.…at that—point”,模式 最后,从右向左循环通过比较模式中的所有字符与对应 串P=“at—that”的匹配过程如下所示: 位置的文本中的字符,发现模式串中的所有的字符匹配成功。 该算法总共比较了13次。 BMH的预处理阶段需要0(m+o-)的时间和0(o)的空 间,搜索阶段需要O(mn)时间。在最坏情况下BM下的复杂 度为O(mn),但在一般情况下比BM有更好的性能,他只使 第一步:‘f’没有在P中出现,shifit【‘一’】=4则模式串右 用了一个数组,简化了初始化过程,省去了求最大值的计算。 移动1 1(7+4)个位置。 3一种单模式匹配算法 第二步:一t与 一t匹配,则比较 ‘l与 一a 发现不匹 根据BMH算法的思想,匹配失败时都要考虑文本串中与 配,则模式串右移动到下个子串末端 ‘-处进行匹配,(_,在 模式串最后一个位置对应的那个字符来决定模式串右移动量, 模式串出现,故shifit【‘。’】=4,则模式串右移动4个位置。 因此本文利用此思想再加上文本切分的方法,把文本串切分 第三步:‘一’与 一t不匹配,则考察下个 一a位置,一a 成模式串大小的子串,每次都比较切分后的子串的最后一个 在模式串中出现,首先考察shift【‘a’]1模式串右移动1个位置。 字符是否在模式串中出现从而来决定模式串的右移动位置。 最后,从右向左循环通过比较模式中的所有字符与对应 如果最后一个字符恰好不在模式串中,则根据下一个子串的 位置的文本中的字符,发现模式串中的所有字符匹配成功。 最后一个字符的移动量加上一个模式串长度来决定模式串的 该算法总共比较了11次。 右移动量,这样当切分子串的最后一个字符不在模式串中出 本文提出的的算法当子串的最后一个字符在模式串中不 现的时候至少可以移动模式串长度的位置。如果子串的最后 重复出现时,如果匹配不成功模式串右移动至少是一个模式 一 个字符在模式串中出现,则右移动量采用坏字符skip移动 串的长度,BMH算法在匹配不成功的条件下最多右移一个模 法,移动到满足条件的位置,从右向左开始匹配文本串与模 式串长度。因此本文算法的移动量要大于BMH算法的移动 式串,如果所有的字符都匹配成功,说明模式串匹配成功;否 量,减少了匹配次数。但切分后的子串的最后一个字符在模 则如果在模式串的某个位置不匹配,则说明没有匹配成功, 式串中重复出现的可能性也有,此时该算法应用散列技术来 跳过该文本子串进行下一个子串的匹配。 提高匹配速度。 当文本串与模式串的比较过程中,发现了不匹配,这里 4测试结果及结论 恰好模式串有重复出现的字符,如果按照BMH算法中的skip 为了比较本文提出的算法与原BMH算法的性能,选取了 函数只记录模式串中字符最右边的出现的位置,在该算法中 一 个大小为150MB大小的文本串,进行测试比较,实验环境 可能出现遗漏问题。现举例说明:文本串 “adebcbdt”,模式 为IntelCPU2.66GHZ,内存256M,测试结果如表1所示。 串 “bcbd”。首先切分文本串考察第一个子串中的字符b,发

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档