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是什么意思?