`
viMory
  • 浏览: 57863 次
  • 性别: Icon_minigender_1
  • 来自: 土卫六
最近访客 更多访客>>
社区版块
存档分类
最新评论

图解BM算法

阅读更多

         BM算法是Boyer-Moore算法的简称,由Boyer Moore提出。被认为在一般的应用中为最有效的字符串匹配算法。

     举例:在文本串S="A simple example"中搜索模式串T="example",BM算法是从后向前搜索首先比较S[6]和T[6],如下图:

970a70ac-ebf0-32c3-8b08-6fd16a6e7778

     匹配失败,T下标加1,继续匹配,如下图:

04b4bff3-ffdf-3ad4-a4d1-72c2588bc2ff

     这次匹配成功四个,在S[3]和T[2]相比处停下来,我们把这四个加到T前面作为辅助。如下图:

60e4b921-617c-3cce-a0b0-da69fadaf714

      T从T[0]跳到和S[4],匹配从T[9]相比S[13]开始,如下图:

74a65aef-344c-340b-ab50-42c115d756c8

      上图匹配一开始就失败,T下标加1,再匹配,又失败,再加1,匹配成功,如下图:

41c5712a-e21f-3445-ba86-fd0c29a78fcb

       算法有时间再贴出来~~(PS:那天学画图没白费,今天一下子就画好了~ 嘿嘿 ^_^)

2
0
分享到:
评论
5 楼 shaonanxu 2011-11-14  
4 楼 shimo 2010-09-04  
图解是错的。最后两次加1 ,根据坏字符规则实际上是直接加2跳转。
3 楼 sssider 2010-04-09  
有 Boyer-Moore Automata 相关的图解或者算法代码么?
2 楼 superjavason 2008-10-15  
匹配失败,T下标加1
应该是S下标加1吧
1 楼 haisheng 2008-07-30  
              

相关推荐

    BM算法图解与c语言实现

    BM算法的相关资源吧,前两天看的,和大家分享

    BM模式匹配算法-原理(图解)

    BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。

    数据结构和算法-思维导图.pdf

    - 字符串匹配算法如朴素字符串匹配、RK算法、BM算法、KMP算法、Trie树、AC自动机、后缀数组等。 - 散列列表在字符串处理中的应用。 4. **数据结构类型**: - 线性表查找和树结构查找,广度优先搜索和深度优先...

    实现视网膜断层图中Vitreous、NFL、GCL、INL、OPL、ONL、OS、RPE八层的图像分割识别+代码操作视频

    1.领域:matlab,视网膜断层图分割识别算法 2.内容:实现视网膜断层图中Vitreous、NFL、GCL、INL、OPL、ONL、OS、RPE八层的图像分割识别+代码操作视频 3.用处:用于视网膜断层图分割识别算法编程学习 4.指向人群...

    线性规划基本概念应用标准型图解法灵敏分析PPT学习教案.pptx

    这有助于使用单纯形法或其他算法求解。 5. **灵敏分析**: 灵敏分析是研究线性规划解对参数变化的敏感程度。当模型的参数(如成本或资源限制)发生变化时,了解解如何变化可以帮助决策者评估模型的稳定性。 6. **...

    基于IEEE-802.16a的RS-CC编译码方法研究答辩开场白.docx

    - **译码算法**:阐述了RS码的译码算法,特别是Berlekamp-Massey(BM)算法的工作流程和步骤。 - **性能仿真**:通过对不同码长和码率的RS码进行仿真测试,验证了RS码在不同条件下的性能表现。 3. **卷积码的编...

    线性规划与网络流24题

    求解线性规划的方法有很多,包括单纯形法、内点法和图解法等。其中,单纯形法是最经典的求解算法,由丹·佐治·贝尔曼和乔治·B·丹齐格在1947年提出,它通过迭代寻找可行域的顶点来逐步逼近最优解。 网络流...

    第三方开源库PhotoView和ImageLoader jar包

    3. **性能优化**:PhotoView在处理大图时,通过合理的内存管理和位图解码策略,减少了内存消耗,提高了应用的性能。 **ImageLoader** ImageLoader是由Sergey Tarasevich开发的一个强大的Android图片异步加载库。它...

    一些matlab网址.docx

    包括微分方程的求解、拟蒙特卡洛方法的积分实例,以及不同类型的神经网络实现,如径向基(RBF)函数神经网络、随机神经网络(RNN)、2层神经网络、概率神经网络(PNN)、盒中脑(BSB)网络模型和Boltzmann机网络(BM),这些...

    线性规划概念与数学模型PPT学习教案.pptx

    线性规划的图解法适用于只有两个决策变量的情况,可以通过二维坐标系来表示。首先,约束条件被表示为坐标平面上的半平面,每个半平面的边界是由相应的等式形成的直线。可行域是所有约束条件共同构成的区域,即所有...

    运筹学线性规划PPT学习教案.pptx

    图解法适用于决策变量个数不多,且约束条件为二维的情况,可以通过绘制可行域并找出使目标函数达到最优值的点来求解。而算法法,尤其是单纯形法,适用于更复杂的多维问题,通过迭代调整变量来寻找最优解。 线性规划...

    线性规划(1).pdf

    在实际应用中,当决策变量或约束条件数量增加时,图解法不再适用,需要借助计算机软件或算法(如单纯形法、内点法)来求解。线性规划的解决方案不仅提供了最优值,还给出了最优解的具体数值,这对于实际问题的解决至...

    数学建模-第01章 线性规划.zip

    2. 单纯形法:由丹尼尔·卡门特在1947年提出,是一种数值算法,能解决任何规模的线性规划问题。它通过迭代过程,每次选择一个基变量进入,一个非基变量退出,逐步逼近最优解。 四、对偶线性规划 对偶线性规划是原...

Global site tag (gtag.js) - Google Analytics