代码:
先定义2个串,主串和子串
前面说找到返回下标,没找到返回-1
所以直接打印输出函数返回值就好了
后面调用的时候可以多试几个pos位置
接下来写BF算法的实现函数
一进入函数先参数判断,考虑每个参数成员一遍
接下来定义主串下标i和子串下标j,开始比较是否相等并判断比较条件
判断条件里要求str和sub的长度,在前面加上计算长度,
不直接把strlen计算写到循环里是因为这样就不用每一次进入循环都要计算一遍了
上面的if判断里面写了strlen是因为那里没有定义循环,if里也只计算一遍
相等则后移一位继续比较
不相等则回退
循环内是相等继续和不相等回退2种情况,
全部遍历完后,出循环要判断是否查找成功
测试
下面来看看BF算法的时间复杂度:O(n*m)(主串长度乘子串长度)
原因在于i必须回退
朴素查找算法