用JAVA语言实现的BM算法
来源:互联网 发布:淘宝上卖的茶杯犬真吗 编辑:程序博客网 时间:2024/05/13 22:22
packagecom.java.kmp;/**
*BM实现类
*
*/
publicclassBM{
privatelongtime1,time2;privatelongcount;
privateintdist(charc,charT[]){
intn=T.length;
if(c==T[n-1]){
returnn;
}
for(inti=n;i>=1;i--){
if(T[i-1]==c)
returnn-i;
}
returnn;
}
publicvoidbm(Stringmsg){
Stringstring2="";
Stringpattern="123456";Stringtest="123";
char[]p=pattern.toCharArray();char[]t=test.toCharArray();
intplen=p.length,tlen=t.length;intsum=0;
if(plen<tlen){
System.out.println("匹配失败");
}else{
inti=tlen,k,j;
time1=System.nanoTime();
while(i<=plen){
k=i;
j=tlen;
while(j>0&&p[i-1]==t[j-1]){
i--;
j--;
}
if(0==j){
sum=sum+tlen;
string2=string2+"在主串中第"+(i+1)+"位匹配成功;";System.out.println("在主串中第"
+(i+1)+"位匹配成功.");
break;
}else{
sum=sum+k-(i-1);
i=i+dist(p[i-1],t);
if(i>plen){
string2=string2+"匹配失败;";
System.out.println("匹配失败.");
break;
}
}
//System.out.println(i);
}
time2=System.nanoTime();
}
System.out.println("BM算法共匹配了"+sum+"次.");System.out.println("BM算法开始时间为"+time1+".");System.out.println("BM算法结束时间为"+time2+".");count=time2-time1;
//string2=string2+"\n所用时间为:"+count+"ms.\n";System.out.println("整个BM算法共用时"+count+"ns.\n");}
publicstaticvoidmain(String[]args){
BMbm=newBM();
bm.bm();}
}
- 用JAVA语言实现的BM算法
- BM字符串匹配算法的java实现
- java 实现的Boyer-Moore(BM)算法
- java实现子字符串的BM算法
- BM算法C语言实现
- BM算法的C++实现
- snort中的BM算法(c语言实现)
- BM算法(Boyer-Moore) (JAVA实现)
- [算法]字符串匹配算法之BM算法,C语言实现
- BM算法的C++改进实现
- Berlekamp Massey(BM)算法的C实现
- BM算法简单实现
- BM算法实现
- BM算法实现源代码
- bm 算法实现
- BM 算法 Cpp 实现
- BM算法 java代码
- BM模式匹配算法-实现(C语言)
- sublist 用法
- 优化问题—基础1
- 多线程(GCD、Operation、NSThread的区别)
- orcal 数据库安装与配置好本机的net manager服务监听
- scrapy shell [url] TypeError: 'float' object is not iterable
- 用JAVA语言实现的BM算法
- git存储用户名与密码
- 使用pyinstaller工具打包python项目代码生成exe文件
- springmvc对ajax的支持
- 第9天:自定义异常
- Android开发fastjson错误:JSONException: default constructor not found. class com.xx...
- 我的GitHub搭建博客
- php根据URL获得网页内容
- C/S架构的简单文件传输系统的实现