我编写了一种通过数组进行冒泡的方法,然后编写了一种测试冒泡方法的方法。此方法先在排序之前打印数组,然后在排序之后打印,之后我要打印比较和交换的数量,但输出为0。
所以我的问题是,如何修改在testBubbleSort()中初始化的数组,但是在我调用bubbleort()之后,int的comps和swaps仍为0?
static void bubblesort(int[] a, int comps, int swaps) {
int n = a.length;
int temp;
for(int i = 0; i < n; i++) {
for(int j = 1; j < n-i; j++) {
comps += 1;
if (a[j-1] > a[j]) {
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
swaps += 1;
}
}
}
}
public static void testBubbleSort(int n, int max) {
System.out.println("Bubblesort:");
int a[] = erzeugeFeld(n, max); // Method that generates random array
int comps = 0;
int swaps = 0;
druckeFeld(a, "Test - Vorher: ", "-", ".\n"); // Method that prints array
bubblesort(a, comps, swaps);
druckeFeld(a, "Test - Nachher: ", "-", ".\n");
System.out.println("The number of comps is: " + comps + "; the number of swaps is: " + swaps + ";" );
System.out.println();
}
谢谢!