/*排序算法比较*/
package paixu;
import java.util.Random;
public class SortCompare {
public static long time(String alg,Comparable[] a){
//计算排序时间,单位为毫秒
long start = System.currentTimeMillis();
if(alg.equals("Insertion")) Insertion.sort(a);
if(alg.equals("Selection")) Selection.sort(a);
long end = System.currentTimeMillis();
return (end-start);
}
public static long timeRandomInput(String alg,int N,int T){
//使用算法alg将T个长度为N的数组进行排序,返回所用时间
long totalTime = 0;
Integer[] a = new Integer[N];
Random random = new Random();
for(int t=0; t<T; t++){
for(int i=0; i<N; i++) a[i] = random.nextInt(100000);
totalTime += time(alg, a);
}
return totalTime;
}
public static void main(String[] args){
String alg1 = "Insertion";
String alg2 = "Selection";
int N = 1000;
int T = 100;
long t1 = SortCompare.timeRandomInput(alg1, N, T);
long t2 = SortCompare.timeRandomInput(alg2, N, T);
System.out.println("插入排序运行时间:"+t1);
System.out.println("选择排序运行时间:"+t2);
System.out.println("选择排序运行时间是插入排序运行时间的"+((double)t2/t1)+"倍");
}
}
/*排序算法比较*/package paixu;import java.util.Random;public class SortCompare { public static long time(String alg,Comparable[] a){ //计算排序时间,单位为毫秒 long start = System.currentTimeMillis(); if(