一、BF算法原理
BF算法是一种蛮力算法,其实现过程没有任何技巧,就是简单粗暴地拿一个串同另一个串中的字符一一比对,得到最终结果。
算法目的:确定主串中所含子串第一次出现的位置,这里的子串也称为模式串。
设计思想:
(1)主串和模式串逐个字符进行比较
(2)当出现字符不匹配(失配)时,主串的比较位置重置为起始位置的下一个字符位置,模式串的比较位置重置为起始字符
回溯关系的确定:i = i - j + 1; //主串指针回溯到比较起始位置的下一个字符位置
关键字:循环比较第一次回溯
因为i=j=0都是从0开始,因此逐一比较时下标相等。回溯下标需要使i=1
第二轮回溯经过第一次回溯,i的下标比j的下标大1,因此进行i=i-j+1=2,i指针又往前挪移一位因此i-j是保留之前累积的i>j的差值,然后+1,利用循环便可以继续累加,达到指针不断向前移,回溯到比较起始位置的下一个字符位置的效果。