您好我使用的通用冒泡排序算法,我想跟踪数组排序之前发生的比较次数。比较次数必须存储在数组列表中。我不太清楚如何做到这一点,所以我想知道是否有人可以提供帮助。感谢
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);
}
答案 0 :(得分:2)
每次排序数组时,都需要跟踪比较次数。为此,在bubbleSort方法的开头创建一个初始化为零的int
,然后在执行比较时增加该数字。在bubbleSort方法的最后,将该int添加到列表中。