嗨,我有一個通用的氣泡排序算法,我正在使用,我想跟蹤數組排序之前發生的比較次數。比較次數必須存儲在數組列表中。我不太確定如何做到這一點,所以我想知道是否有人可以提供幫助。謝謝計算排序算法的比較次數,並將其添加到java中的數組列表中
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);
}
不清楚ArrayList應該包含什麼 - 整個排序的比較數量?在相應索引處對元素進行比較的次數是多少? – 2012-02-02 22:47:49
爲什麼你需要將比較次數存儲在一個'ArrayList'中,如果你說它是一個「數字」的比較,你應該能夠將它存儲在一個數字中,比如說類型爲'int' – ggreiner 2012-02-02 22:48:10
你爲什麼要將它存儲在一個'ArrayList'而不是一個'int'中?這是功課嗎?你試過什麼了? – templatetypedef 2012-02-02 22:48:19