`
viMory
  • 浏览: 56221 次
  • 性别: 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  
              

相关推荐

Global site tag (gtag.js) - Google Analytics