收藏 分销(赏)

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

上传人:xrp****65 文档编号:7654572 上传时间:2025-01-11 格式:DOC 页数:3 大小:28KB 下载积分:10 金币
下载 相关 举报
用JAVA语言实现的KMP算法.doc_第1页
第1页 / 共3页
用JAVA语言实现的KMP算法.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
package com.java.kmp; /** * KMP实现类 * */ public class KMP { private long time1,time2; private long count; private int[] getNext(char[] B) { int i, j; int len = B.length; int[] next = new int[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; } return next; } public void kmp(String msg) { String string1 = ""; String pattern = "123456"; String test = "123"; int plen = pattern.length(); int tlen = test.length(); char[] p = pattern.toCharArray(); char[] t = test.toCharArray(); //char[] t = { 'a', 'b', 'a', 'a', 'b', 'c', 'a', 'c'}; int[] n = getNext(t); for(int k = 0 ;k < n.length; k++){ System.out.println(n[k]); } if (plen < tlen) { System.out.println("匹配失败"); } int i = 1, j = 1, sum = 0; //time1 = time.date(); time1 = System.nanoTime(); 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) + "位匹配成功 ;"; System.out.println("在主串中第" + (i - j + 1) + "位匹配成功 ."); } else { string1 = string1 + "匹配失败 ;"; System.out.println("匹配失败 ."); } //time2 = time.date(); time2 = System.nanoTime(); /* * for (int i = 0; i < size2; i++) { System.out.print(" " + P[i]); } */ System.out.println("KMP算法共匹配了 " + sum + " 次 ."); System.out.println("KMP算法开始时间为" + time1 + "."); System.out.println("KMP算法结束时间为" + time2 + "."); count = time2 - time1; //string1 = string1 + "\n所用时间为:" + count + "ms.\n"; System.out.println("整个KMP算法共用时" + count + "ns.\n"); } public static void main(String[] args) { KMP kmp = new KMP(); kmp.kmp(); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服