图解字符串搜索算法(Boyer-Moore)

博耶-摩尔(Boyer-Moore)算法是一种高效的字符串搜索算法,由Robert s.Boyer和J Strother Moore于1977年提出。该算法利用"坏字符"和"好后缀"启发式规则,通过从右到左匹配减少无效比较,提高搜索效率。文章详细介绍了BM算法的原理,并通过实例演示了算法的运行过程。
摘要由CSDN通过智能技术生成

字符串搜索算法(Boyer-Moore)

BM算法简介

  • 1977年,德克萨斯大学的 Robert s.Boyer教授和J Strother moore教授发明了在字符串中搜索模式字符串的一种算法。
  • BM算法是精确字符串匹配算法,在字符串比对过程中采用从右往左比对方式。
  • BM算法基于“坏字符”和“好后缀”两种启发式。

BM算法相关概念

  • 坏字符(Bad-Character):在比对过程中,不匹配的字符。
  • 好后缀(Good-Suffix):如果字符串匹配失败,则之前已经成功匹配的部分称为好后缀。

在这里插入图片描述

字符 “I” 为本次匹配过程中产生的坏字符;后缀“E”、“LE”、“PLE”、“MPLE"为本次匹配过程中产生的好后缀。

“坏字符”启发规则

  • 模式字符串后移位数=坏字符对应的模式字符串的位置 - 坏字符在模式字符串前面出现的位置。
  • 当坏字符在模式字符串前部不存在时,则标记“坏字符在模式字符串前面出现的位置”为"-1”。
    在这里插入图片描述

例如在上面匹配过程中,“P”和"E"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值