什么是bf算法急急急~~

一、什么是bf算法??急急急~~

展开全部BF(Brute Force)算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和P[1]不等,则T向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(MN)。下面是实现:int Index(SString S,SString T,int pos){ / 返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0。 / / 其中,T非空,1≤pos≤StrLength(S)。算法4.5 / int i,j; if(1<=pos&&pos<=S[0]) { i=pos; j=1; while(i<=S[0]&&j<=T[0]) if(S==T[j]) / 继续比较后继字符 / { ++i; ++j; } else / 指针后退重新开始匹配 */ { i=i-j+2; j=1; } if(j>T[0]) return i-T[0]; else return 0; } else return 0;}

什么是bf算法急急急~~

二、什么是bf算法??急急急~~

BF(Brute Force)算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和P[1]不等,则T向右移动一个字符的位置,再依次进行比较。如果存在k,1≤k≤N,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(MN)。

下面是实现:

int Index(SString S,SString T,int pos)

{ / 返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0。 /

/ 其中,T非空,1≤pos≤StrLength(S)。算法4.5 /

int i,j;

if(1<=pos&&pos<=S[0])

{

i=pos;

j=1;

while(i<=S[0]&&j<=T[0])

if(S==T[j]) / 继续比较后继字符 /

{

++i;

++j;

}

else / 指针后退重新开始匹配 */

{

i=i-j+2;

j=1;

}

if(j>T[0])

return i-T[0];

else

return 0;

}

else

return 0;

}

三、什么是bf算法??急急急~~

BF)算法核心思想是:首先S[1]和T[1]比较,若相等,则再比较S[2]和T[2],一直到T[M]为止;若S[1]和P[1个字符的位置,再依次进,且S[k+1…k+M]=T[1…M],则匹配成功;否则失败。该算法最坏情况下要进行M*(N-M+1)次比较,时间复杂度为O(MN)。下面是实现:int Indng S,SString T,int pos){ / 返回子串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0。 / / 其中,T非空,1≤pos≤StrLength(S)。算法4.5 / int i,j while(i<=S[0]&&j<=T[0]) if(S==T[j]) / 继续比较后继字符 / { ++i; ++j; } else / 指针后退重新开始匹配 */ { i=i-j+2; j=1; ]) return i-T[0]; else return 0; } else return 0;}

本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。