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).