我已經創建了一個新的冒泡排序項目,我想知道它需要多少時間。因此,我添加了一個getTime()
方法,該方法返回nanotime。我也創建了一個具有9個靜態值的數組。當我運行我的代碼時,我得到不同的運行時間(即:通常我得到3849 ns,但有時6432或4277 ns)。怎麼會這樣?我在Java中獲得bubblesort的不同運行時間
我的代碼如下:
long time2;
public void sort(int[] dizi){
long time = System.nanoTime();
for (int i = dizi.length-1; i >0; i--) {
for (int j = 0; j < i; j++) {
if(dizi[j]>dizi[j+1]){
super.swap(dizi, j, j+1);
}
}
}
time2 = System.nanoTime() - time;
}
public long getTime(long time){
return time;
}
main(){
BubbleSort bubbleSort = new BubbleSort();
int[] arr = {4,2,1,8,9,5,3,7,6};
bubbleSort.sort(arr);
Sysout(bubbleSort.getTime(time2));
}
可以有很多的變數,可能會導致你的時間是不同的,如JVM進行垃圾收集,您的操作系統執行一些其他任務等。 – blamonet 2013-03-17 23:49:12
展開您的陣列到10萬以上。 – yehe 2013-03-17 23:53:22
復活節兔:什麼都沒有改變,我的第一次審判13204534055秒13230923476 blamonet:如果我看到真實的)這種情況與我的系統和System.nanoTime(正常的異常 – 2013-03-18 00:00:15