原文地址http://www.cnblogs.com/liukemng/p/3724099.html
前面我們寫了常見的幾種排序算法,并分析了各種算法的實現思想,及時間復雜度等情況,但由于只是分析,木有實際的數據做對比測試,所以對各個算法的效率也沒有一個明確的概念,下面我們就通過具體的測試來看看同算法之間的效率差距。
聲明11個長度為100的元素取值范圍為0到1000的序列
int length = 100;int[] testArray1 = new int[length];int[] testArray2 = new int[length];int[] testArray3 = new int[length];int[] testArray4 = new int[length];int[] testArray5 = new int[length];int[] testArray6 = new int[length];int[] testArray7 = new int[length];int[] testArray8 = new int[length];int[] testArray9 = new int[length];int[] testArray10 = new int[length];int[] testArray11 = new int[length];Random random = new Random();for (int i = 0; i < length; i++){ int temp = random.Next(0,1000); testArray1[i] = temp; testArray2[i] = temp; testArray3[i] = temp; testArray4[i] = temp; testArray5[i] = temp; testArray6[i] = temp; testArray7[i] = temp; testArray8[i] = temp; testArray9[i] = temp; testArray10[i] = temp; testArray11[i] = temp;}運行測試,測試結果截圖:
乍一看,幾種算法之間效率好像木有差別,設置前幾種時間復雜度比較高的算法還要快一點。別急,讓我們增加序列中的元素數量再試一下,把length =100改為length =1000再次運行測試,結果截圖:
結果已經可以看出,時間復雜度低的算法是領先的,但效果好像不太明顯。讓我們把把length =1000改為length =10000再次運行測試,測試結果截圖:
這次測試結果已經有了質的改變,相信通過測試大家對不同時間復雜度算法之間的效率已經有了一個清晰的概念。
|
新聞熱點
疑難解答