t=t0t1t2t3 ..tn-1
p=p0p1p2 ..pm-1
其中1<m<=n (m<<n)
index(String s1,String s2)
其功能为如果串s2是s1的字串,则可求串s2 在串s1种第一次出现的位置
朴素的模式匹配 又称蛮力算法:用p中的字符一次与t中的字符比较直到出现相同或匹配失败 结束
算法
int index(PSeqString t,PSeqString p)
{
int i,j;
i=0;j=0;
whiel(i<p->n&&j<t->n)//反复比较
{
if(p->c[i]==t->c[j])//f(p->c[i]表示pi,t->c[j] 表示ti
{
i++;j++;
}else{
j=j-i+1;//主串,字串的i,j 值回溯,重新开始下一次匹配
i=0;
}
if(i<=p->n){return(j-p->n+1);}//匹配成功,返回P中第一个字符在t中的序号
else{return 0;} //失败
}//end while
}//end main
算法的时间效率为O(m*n).