为什么我的方法仅修改某些参数?

时间:2018-06-24 12:40:53

标签: java sorting bubble-sort

我编写了一种通过数组进行冒泡的方法,然后编写了一种测试冒泡方法的方法。此方法先在排序之前打印数组,然后在排序之后打印,之后我要打印比较和交换的数量,但输出为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();
}

谢谢!

0 个答案:

没有答案