我正在尝试用计数器和计时器来检查这个java bubblesort算法的效率。计数器工作正常,但计时器似乎考虑了用户输入要排序的数字集所需的时间。我只希望计时器计算bubblesort算法排序的时间。任何提示或帮助将受到高度赞赏:)
public class bubsort {
public static void main(String[] args) {
int n, c, d, swap;
Long startTimer;
Scanner in = new Scanner(System.in);
System.out.println("Input number of integers to sort");
n = in.nextInt();
int array[] = new int[n];
int counter = 0;
System.out.println("Enter " + n + " integers");
for (c = 0; c < n; c++) {
array[c] = in.nextInt();
}
startTimer = System.nanoTime();
for (c = 0; c < (n - 1); c++) {
for (d = 0; d < n - c - 1; d++) {
counter++;
if (array[d] > array[d + 1]) {
swap = array[d];
array[d] = array[d + 1];
array[d + 1] = swap;
}
}
}
System.out.println(System.nanoTime() - startTimer + "ms");
System.out.println("Sorted list of numbers");
for (c = 0; c < n; c++) {
System.out.println(array[c]);
}
System.out.println("Counter: " + counter);
答案 0 :(得分:1)
在嵌套循环之前移动startTimer,但是在输入循环之后。然后回想一下,nanoTime给出ns而不是ms。如果你想要毫秒,请使用System.currentTimeMillis()。