Java 修改排序方法以按降序排序

Java 修改排序方法以按降序排序,java,sorting,loops,for-loop,Java,Sorting,Loops,For Loop,我的问题是,如果我想将排序方法改为按降序排序,那么必须做什么?准备期末考试 我的方法如下 public void selectionsort(Comparable[] array) { for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < array.length; j++) { if (array[j].com

我的问题是,如果我想将排序方法改为按降序排序,那么必须做什么?准备期末考试

我的方法如下

    public void selectionsort(Comparable[] array) {
    for (int i = 0; i < array.length; i++) {
        int min = i;
        for (int j = i + 1; j < array.length; j++) {
            if (array[j].compareTo(array[i]) < 0) {
                min = j;
            }
        }
        swap(array, min, i);
    }
}

public void bubblesort(Comparable[] array) {
    for (int poss = array.length; poss > 0; poss--) {
        for (int i = 0; i < poss; i++) {
            if (array[i].compareTo(array[i + 1]) > 0) {
                swap(array, i, i + 1);
            }
        }
    }
}

public static void insertionsort(Comparable[] array) {
    for (int i = 1; i < array.length; i++) {
        Comparable temp = array[i];
        int poss = 0;
        while (poss > 0 && array[poss - 1].compareTo(temp) > 0) {
            array[poss] = array[poss - 1];
            poss--;
        }
        array[poss] = temp;
    }
}
我最初认为需要做的就是改变我与组织的opp的比较。但这似乎不起作用

将数组[j].compareToarray[i]<0更改为数组[j].compareToarray[i]>0


同样,在所有compareTo调用中翻转,反之亦然,以反转顺序。

编写一个比较器函数,并使用它代替符号。然后,您可以从比较器中控制排序顺序


此外,您还可以在比较器中使用一个参数来决定它的排序方式,然后将其作为用户输入。因此,可以从命令行控制它的排序方式。

创建compareToReversed方法,该方法将返回-compareToResult。

+0:+1用于推荐比较器,-1用于推荐在比较器中引入状态。顺序应该颠倒,这是Java的工作方式。我更倾向于尝试实现功能性并动态修改比较器。人们可能会争论myComparator.setAscendingtrue和myComparator=reverseOrdermyComparator之间的选择,但最终,人们可能会说这取决于应用案例和预期用途……没错。在OP的案例中,这是他学习的最后一个选项,这将使两个选项都变得毫无意义,并且可能同样无用什么是组织的opp是什么意思?