1 / 4
文档名称:

用JAVA语言实现的KMP算法.doc

格式:doc   大小:21KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用JAVA语言实现的KMP算法.doc

上传人:kt544455 2020/2/7 文件大小:21 KB

下载得到文件列表

用JAVA语言实现的KMP算法.doc

相关文档

文档介绍

文档介绍::...;/***KMP实现类**/lassKMP{ privatelongtime1,time2; privatelongcount; privateint[]getNext(char[]B){ inti,j; intlen=; int[]next=newint[len]; next[0]=.;/***KMP实现类**/lassKMP{ privatelongtime1,time2; privatelongcount; privateint[]getNext(char[]B){ inti,j; intlen=; int[]next=newint[len]; next[0]=0; for(j=1;j<len;j++){ i=next[j-1]; while((i>0)&&(B[i-1]!=B[j-1])){ i=next[i-1]; } next[j]=i+1; } returnnext; } publicvoidkmp(Stringmsg){ Stringstring1=""; Stringpattern="123456"; Stringtest="123"; intplen=(); inttlen=(); char[]p=(); char[]t=(); //char[]t={'a','b','a','a','b','c','a','c'}; int[]n=getNext(t); for(intk=0;k<;k++){ (n[k]); } if(plen<tlen){ ("匹配失败"); } inti=1,j=1,sum=0; //time1=(); time1=(); while(i<=plen&&j<=tlen){ if(j==0||p[i-1]==t[j-1]){ if(j!=0){ sum++; } i++; j++; }else{ sum++; j=n[j-1]; } if(j>tlen){ break; } } if(j>tlen){ string1=string1+"在主串中第" +(i-j+1)+"位匹配成功;"; ("在主串中第" +(i-j+1)+"位匹配成功."); } else{ string1=string1+"匹配失败;"; ("匹配失败."); } //time2=(); time2=(); /* *for(inti=0;i<size2;i++){(""+P[i]);} */ ("KMP算法共匹配了"+sum+"次."); ("KMP算法开始时间为"+time1+".");