当前位置: 代码迷 >> C语言 >> 求 KMP改进算法 BM 改进算法
  详细解决方案

求 KMP改进算法 BM 改进算法

热度:655   发布时间:2007-05-07 23:24:16.0
求 KMP改进算法 BM 改进算法
QQ  63815710
搜索更多相关的解决方案: 算法  KMP  改进  

----------------解决方案--------------------------------------------------------
KMP算法:
int index(String S,String T,int pos)
{
int i=pos;int j=1;
while(i<=S.length&&j<=T.length)
{
if(S[i]==T[j]){i++;j++}
else{i=i-j+2;j=1;}
}
if(j>=T.length) return i-T.length
}

改进的KMP算法
int index_KMP(String S,String T,int pos)
{
int i=pos;int j=1;
while(i<=S.length&&j<=T.length)
{
if(S[i]==T[j]){i++;j++}
else j=next[j];
}
if(j>=T.length) return i-T.length
}
void get_next(String T,int next[])
{
int i=1;next[1]=0;int j=0;
while(i<T.length)
{
if(j==0||T[i]==T[j]){i++;j++;next[i]=j;}
else j=next[j];
}
}
----------------解决方案--------------------------------------------------------
  相关解决方案