BM算法是与KMP算法一样高效的字符串匹配算法.
与KMP算法所不同的是:BM算法是从模式串后部开始匹配,来提高串匹配的效率(因为不在模式串中出现的字符一般很多和最后几位不匹配的情形也很多,所以用BM可以向后滑动更长的一段距离).
pattern=p1p2....pm( pi 为字符,不妨设为小写字符)
1)定义: 函数dist(*)
if (c not in [p1,p2,..,pm]) or ( c=pm and c not in [p1,p2,...,pm-1])
dist(c) = m;
if (c=pj and 1<=j<=m-1) dist(c)=m-j ;(如果 c=pi and c=pk 则 dist(c)=m-
min(i,k))