字符串匹配算法BF BM BMH BMHS分析(3)

2019-01-18 21:55

}

No match found

例子4:

1. astrings e archingexamplienvolingrelatively relative (e in pattern)

2. astringse a rchingexamplienvolingrelatively relative (a in pattern)

3. astringsearchi n gexamplienvolingrelatively relative (n not in pattern)

4. astringsearchingexamplie nvolingrelatively relative (e in pattern)

5. astringsearchingexamplie n volingrelatively relative (n not in pattern) 6. astringsearchingexamplienvolingre l atively relative

7. astringsearchingexamplienvolingrelatively relative

BMHS算法用下一个字符来计算右移量,即只使用text[i+1],当下一个字符不在模式中出现时,它的右移量比BMH算法的右移量大,通常情况下,BMHS算法比BMH算法快,当text[i]不在模式中出现,而text[i+1]却出现在模式中时,即当skip[i]>skip[i+1]时,BMHS算法的效果就不如BMH算法。

2.6 本章小结

在以上介绍的算法中,BF算法思路简单,效率太低;KMP算法引入next函数,思路新颖,效率也较之提高;BM算法考虑比较全面,包括了右移时的各种情况,但它使用了两个数组,预处理时间花费较大;BMH算法在BM算法的基础上进行了简化,只使用一个数组来计算右移量,使得算法更加简单、快速、高效;BMHS算法在BMH算法的基础上又提出考虑下一个字符,用下一个字符来决定右移量,使右移量进一步增大,算法速度更快,但在某些情况下,它的效果不如BMH算法。各种模式匹配算法的目的都在于,当模式串与文本串发生失配时模式串可以向右移动尽可能大的距离,以减少比较以及窗口移动次数。经以上对几种单模式匹配算法的分析比较,可以发现BM算法考虑较为全面,但它使用了2个函数来计算最大右移量,导致预处理时间开销较大,BMH算法和BMHS算法在其基础上进行了有效的简化和改进。随着研究的深入,之前的算法都有写

不足之处,还有更好的算法吗?

根据以上的分析,将BMH和BMHS算法的优点进行综合,在此基础上加以改进,便得到了一个效果更好、速度更快的算法,我们将这个改进算法称为BMH2C。


字符串匹配算法BF BM BMH BMHS分析(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初高中状语从句练习附答案状语从句精选

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: