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



Hi我有一个通用的冒泡排序算法,我正在使用它,我想跟踪在数组排序之前发生的比较次数。比较次数必须存储在数组列表中。我不太确定该怎么做,所以我想知道是否有人能帮忙。感谢

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);
}

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

最新更新