BM算法的概念:
BM算法也叫做精确字符集算法,它是一种从右往左比较(后往前),同时也应用到了两种规则坏字符、好后缀规则去计算我们移动的偏移量的算法。
1、坏字符规则
基本思路图解:
首先:提供两个字符串分别是
文本串、模式串
因为是从右往左开始比较、为什么呢?因为这样的话如果最后一个比较不上前面的一定就可以不用比较了。
这时:c、d不匹配。所以文本串中的d是坏字符。
这时利用公式计算出**后移位数。****
后移位数 = 坏字符的位置 - 模式串中的上一次出现位置
所以计算结果是:
6=5-(-1);
因为按数组下标计算,而且模式串中没有该坏字符,所以是(-1)。
版权声明:本文为qq_50576014原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。