学习排序算法3--比较排序算法

来源:互联网 发布:淘宝新手开直通车 编辑:程序博客网 时间:2024/06/11 06:43
//此代码需要用到我前面的两篇博客中的部分代码    http://blog.csdn.net/bobo1356/article/details/51480668//http://blog.csdn.net/bobo1356/article/details/51480784
/*排序算法比较*/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)+"倍");}}

1 0
原创粉丝点击