📄 main.java
字号:
package patternMatching;
//import java.util.Date;
import java.lang.management.*;
public class Main {
/**
* @param args
*/
public static void main(String[] args) throws java.io.FileNotFoundException {
long start;
long end;
ThreadMXBean tmxb = ManagementFactory.getThreadMXBean();
start = tmxb.getCurrentThreadCpuTime();
String text = ReadIn.readIn("Algorithm.html");
//System.out.println(text);
end = tmxb.getCurrentThreadCpuTime();
System.out.println("Loading costs:"+(end-start)+"\n");
String strPattern;
int pattern_position;
PatternMatcher pattern;
long resultArray[] = new long[50*6];
for(int size=1; size <=50; size++){
pattern_position = text.length()-size;;
strPattern = text.substring(pattern_position,text.length());
System.out.println("size " + size);
System.out.println("find in: "+ pattern_position);
System.out.print("BruteForce: ");
start = tmxb.getCurrentThreadCpuTime();
pattern = new BruteForce(strPattern);
for(int i=0 ; i < 100; i++){
pattern.match(text);
}
end = tmxb.getCurrentThreadCpuTime();
//System.out.println("The pattern "+strPattern+" is found with index of "+result);
System.out.println((end-start)/100);
resultArray[(size-1)*6+0]=(int) ((end-start)/100);
resultArray[(size-1)*6+3]= pattern.getComparetimes();
System.out.print("BoyerMoore: ");
start = tmxb.getCurrentThreadCpuTime();
pattern = new BoyerMoore(strPattern);
for(int i=0 ; i < 100; i++){
pattern.match(text);
}
end = tmxb.getCurrentThreadCpuTime();
//System.out.println("the pattern "+strPattern+" is found with index of "+result);
System.out.println((end-start)/100);
resultArray[(size-1)*6+1]=(int)((end-start)/100);
resultArray[(size-1)*6+4]= pattern.getComparetimes();
System.out.print("KnuthMorrisPratt: ");
start = tmxb.getCurrentThreadCpuTime();
pattern = new KnuthMorrisPratt(strPattern);
for(int i=0 ; i < 100; i++){
pattern.match(text);
}
end = tmxb.getCurrentThreadCpuTime();
//System.out.println("the pattern "+strPattern+" is found with index of "+result);
System.out.println((end-start)/100);
resultArray[(size-1)*6+2]=(int)((end-start)/100);
resultArray[(size-1)*6+5]= pattern.getComparetimes();
//System.out.println("result " + pattern.match(text));
}
/*for(int i=0; i <resultArray.length; i++){
if (i%3==0) System.out.print(",");
System.out.print(resultArray[i]+" ");
}*/
Excel.intoExcel(resultArray);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -