嗨,我有一个通用的气泡排序算法,我正在使用,我想跟踪数组排序之前发生的比较次数。比较次数必须存储在数组列表中。我不太确定如何做到这一点,所以我想知道是否有人可以提供帮助。谢谢计算排序算法的比较次数,并将其添加到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