实验二-串匹配问题.ppt

1.3实验项目——串匹配问题;3.实验要求

⑴实现BF算法;

⑵实现BF算法的改进算法:KMP算法和BM算法;

⑶对上述三个算法进行时间复杂性分析,并设计实验程序验证分析结果。;4.实验提示

(1)BF算法

intBF(charS[],charT[])

{

i=1;j=1;

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

{

if(S[i]==T[j]){i++;j++;}

else{i=i-j+2;j=1;}

}

if(jT[0])return(i-j+1);

elsereturn0;

};(2)KMP算法

typedefstruct

{

charch[MaxSize];

intlen;

}SString;

voidGetNext(SStringt,intnext[])//由模式串t求next的值

{

intj,k;

j=0;k=-1;next[0]=-1;

while(jt.len-1)

{ if(k==-1||t.ch[j]==t.ch[k])

//k为-1或比较的字符相等时

{ j++;k++;

next[j]=k;

}

elsek=n

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档