请输入您要查询的百科知识:

 

词条 BF算法
释义

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

下面是用C语言实现:

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])/*S[0],T[0]中存放的为串长*/

if(S[i]==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;

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 5:54:56