阅读背景:

字符串匹配-KMP、BF算法

来源:互联网 

KMP算法比BF算法的时间复杂度降了很多,BF算法在最好的情况下时间复杂度是O(m+n),而最坏情况下的时间复杂度是O(m*n)因为BF算法是要让i的位置回溯的,遇到不匹配的回溯到i-j+2,而KMP算法是不需要回溯的。KMP算法仅当模式串和主串直接有存在许多部分匹配的情况下,才显得比BF算法快。BF算法在一般情况下其实还是O(m+n),其中n代表原串的长度,而m代表模拟串的长度。KMP算法是建立在有一个next函数,next函数需要注意下。具体看代码解析。还有这里字符串的赋值也是需要注意的,已经定义了再赋值比如说 char s[100],s[100]="abcd"这样是错误的得用strcpy函数。char s[100]="abcd",或者char s[100]={'a','b','c','d'};这样也是可以的。KMP算法比BF算法的时间复杂度降了很多,BF算法在最好的情况下时间复杂度是O(m+n),而最




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: