三.BF算法与KMP算法的区别与优缺点 BF算法是子串主串都需要进行回溯比较浪费时间,效率比较低。 KMP算法是主串不需要回溯,子串只需要根据next数组进行回溯到特定位置
其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O(m+n)。 在KMP算法中,为了确定在匹配不成功时,下次匹配时j的位置,引入了next[]数组, next[j]的值表示P[0...j-1]中最长后缀的长度等于相同字符序列的前缀。 对于next[]...