Java Bubble排序算法计时器问题

时间:2014-01-15 20:51:10

标签: java algorithm sorting timer

我正在尝试用计数器和计时器来检查这个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);

1 个答案:

答案 0 :(得分:1)

在嵌套循环之前移动startTimer,但是在输入循环之后。然后回想一下,nanoTime给出ns而不是ms。如果你想要毫秒,请使用System.currentTimeMillis()。