前提:筆記本測試,效能一般,測試前開了好多記憶體殺手。
唯一變數:陣列的長度,其餘各項均不發生變化。
此測試不具有一般性:資料量太少,實驗重複次數不夠,沒有空白對比試驗(~聽著怎麼像是生物實驗了)。如果感興趣,可以自己做重複實驗。
第一種,經典的氣泡排序,**如下:(a)
long start = system.currenttimemillis();第二種,另一種排序方法:(b)int num = new int[10000];
for(int i = 0; i < num.length; i++)
//排序
for(int i = 0; i < num.length - 1; i++)
}
}
long end = system.currenttimemillis();
system.out.println(num[num.length - 1]);
system.out.println(end - start);
long start = system.currenttimemillis();測試方法為:int num = new int[1000];
for (int i = 0; i < num.length; i++)
//排序
for (int a = 0; a < num.length; a++)
}
}
long end = system.currenttimemillis();
system.out.println(num[num.length - 1]);
system.out.println(end - start);
分別將陣列的長度設定為1,000、10,000、100,000三種,本來還想測試1,000,000長度的執行時間,可是時間太長,只好測試這三種了。至於原因麼,我也不知道,你信嗎?測試結果如下:
1,長度為10,00時,兩種**執行時間為:
a:49、31、31、62、31、31、31、31、31、32
b:31、32、32、31、47、31、47、47、31、31
2,長度為10,000時,兩種**的執行時間為:
a:452、452、453、437、452、452、453、452、452、452、437、436
b:218、172、171、188、203、187、187、187、203、187、188、187
3,長度為100,000時,兩種**的執行時間為:
a:23650、23683、27146、28035、23667、28020、23603、28033、28036、28064、26974、27410、23493、23650
b:14573、14570、12168、12217、14602、20593、14695、17004、16975、16209、12215、14556、18161、14573
粗略統計下,分析如下:
1:對於1000組的測試,由於陣列過於小了,測試結果並不明顯,這也是我列舉的資料量少的原因(敲數字太辛苦,懶的再寫);
2:對於10000組的結果分析,得出b組比a組大約快了273毫秒,這個結果有點意思了;
3:對於第三組,差距就明顯的多了,b組比a組快了將近10秒!是秒(s),不是毫秒(ms)!這才多大的資料量啊,如果進行100萬的測試,估計差距更加大(機器不行,太耗時間,就沒測試了)。
ps:如果你的機器測試結果比我的還要快,那麼,並沒有什麼卵用。
只要結果一致就行了。結果也不相同?告訴我你家住哪,我保證不砸你的電腦。(開玩笑)
pps:寫完之後才發現,我竟tm這麼無聊的做這個混蛋測試。真是閒的了。
Python兩種列表翻轉方法的效率比較
python兩種列表翻轉方法的效率比較 編寫乙個python程式,實現將一堆數字新增到乙個初始為空的列表中,然後翻轉該列表。方法一 使用列表的reverse 方法實現 方法二 使用列表的insert 方法實現 nums2 for i in range count nums2.insert 0,i 在...
兩種分頁SQL效率比較
資料庫版本 oracle9i r9.2.0.6 兩種方案 1.select from select a.rownum rn from select from table a where rn 20 and rn 10 2.select from select a.rownum rn from sel...
兩種排序方法
題目描述 考拉有n個字串字串,任意兩個字串長度都是不同的。考拉最近學習到有兩種字串的排序方法 1.根據字串的字典序排序。例如 car carriage cats doggies koala 2.根據字串的長度排序。例如 car cats koala doggies carriage 考拉想知道自己的...