我已经创建了一个新的冒泡排序项目,我想知道它需要多少时间。因此,我添加了一个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