图解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:那天学画图没白费,今天一下子就画好了~ 嘿嘿 ^_^)

你可能感兴趣的:(算法,idea)