计算排序算法的比较次数,并将其添加到java中的数组列表中

时间:2012-02-02 22:46:17

标签: java sorting arraylist

您好我使用的通用冒泡排序算法,我想跟踪数组排序之前发生的比较次数。比较次数必须存储在数组列表中。我不太清楚如何做到这一点,所以我想知道是否有人可以提供帮助。感谢

protected static ArrayList<Integer> noOfComparisons = new ArrayList<Integer>();

public static <E extends Comparable<? super E>> void bubbleSort(E[] comparable) {
boolean changed = false;
do {
    changed = false;
    for (int a = 0; a < comparable.length - 1; a++) {
        if (comparable[a].compareTo(comparable[a + 1]) > 0) {
            E tmp = comparable[a];
            comparable[a] = comparable[a + 1];
            comparable[a + 1] = tmp;
            changed = true;
        }
    }
} while (changed);
}

1 个答案:

答案 0 :(得分:2)

每次排序数组时,都需要跟踪比较次数。为此,在bubbleSort方法的开头创建一个初始化为零的int,然后在执行比较时增加该数字。在bubbleSort方法的最后,将该int添加到列表中。