模式匹配之路

之前我的文章中,介绍了KMP,BM,AC,WM等几个经典的模式匹配算法,本文我将对常用的模式匹配算法做一小结。

模式匹配算法的关系图如下所示:

这里有几个我的文章中暂时没有涵盖的算法,这里做一简要说明。

Rabin-Karp算法,这是一个基于散列值的模式匹配算法,根据散列算法,将长度为m的模式串计算一个散列值,然后对于目标串中各长度为m的子串分别计算散列值,与模式串的散列结果相比较,只有散列值相同的,才会再执行与模式串的逐一字符比较。这个算法的适应性很强,如果选择比较优秀的散列算法,可以在近似O(n)的时间复杂度内完成匹配操作。但是美中不足的是,虽然散列计算的运算开销不是很大,但是对于字符串匹配这种每秒钟可能需要执行数万次的基本运算来说,散列计算可能就是比较大的负担了,其在实际应用中使用的不多,但是散列思想也是解决模式匹配的重要手段,WM算法就受到了该算法的启发。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值