如何将数组中的数字从大到小排序?
How can I sort numbers from largest to smallest in an array?
我能够将矩阵中的数字从小到大排序,但无法将它们从大到小排序。请帮忙...
int[] list = new int[4];
System.out.println("Enter the numbers of array: ");
for (int i = 0; i < list.length; i++)
list[i] = kbd.nextInt();
for (int index = 0; index < list.length; index++) {
int minIndex = index;
for (int i = index + 1; i < list.length; i++) {
if (list[i] < list[minIndex])
minIndex = i;
}
int temp = list[index];
list[index] = list[minIndex];
list[minIndex] = temp;
}
System.out.println("Numbers after sorting: ");
for (int j : list) System.out.print(j + " ");
import java.util.Arrays;
import java.util.Comparator;
Integer[] array = ...
Arrays.sort( array, Comparator.reverseOrder() );
现在数组中的元素已经排序了
public static void main(String... args) {
int[] arr = new int[20];
Random random = new Random();
for (int i = 0; i < arr.length; i++)
arr[i] = random.nextInt(10);
System.out.println(Arrays.toString(arr));
int[] reverseSortedArr = Arrays.stream(arr)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(i -> i)
.toArray();
System.out.println(Arrays.toString(reverseSortedArr));
}
输出:
[9, 0, 8, 1, 4, 7, 3, 6, 4, 6, 7, 6, 2, 3, 8, 0, 1, 3, 5, 2]
[9, 8, 8, 7, 7, 6, 6, 6, 5, 4, 4, 3, 3, 3, 2, 2, 1, 1, 0, 0]
你的方法很好。除以下内容外,无需更改。您需要做的就是反转排序条件。请参阅以下代码段中的注释。
for (int i = index + 1; i < list.length; i++) {
if (list[i] < list[minIndex]) // change < to >
minIndex = i;
}
我能够将矩阵中的数字从小到大排序,但无法将它们从大到小排序。请帮忙...
int[] list = new int[4];
System.out.println("Enter the numbers of array: ");
for (int i = 0; i < list.length; i++)
list[i] = kbd.nextInt();
for (int index = 0; index < list.length; index++) {
int minIndex = index;
for (int i = index + 1; i < list.length; i++) {
if (list[i] < list[minIndex])
minIndex = i;
}
int temp = list[index];
list[index] = list[minIndex];
list[minIndex] = temp;
}
System.out.println("Numbers after sorting: ");
for (int j : list) System.out.print(j + " ");
import java.util.Arrays;
import java.util.Comparator;
Integer[] array = ...
Arrays.sort( array, Comparator.reverseOrder() );
现在数组中的元素已经排序了
public static void main(String... args) {
int[] arr = new int[20];
Random random = new Random();
for (int i = 0; i < arr.length; i++)
arr[i] = random.nextInt(10);
System.out.println(Arrays.toString(arr));
int[] reverseSortedArr = Arrays.stream(arr)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(i -> i)
.toArray();
System.out.println(Arrays.toString(reverseSortedArr));
}
输出:
[9, 0, 8, 1, 4, 7, 3, 6, 4, 6, 7, 6, 2, 3, 8, 0, 1, 3, 5, 2]
[9, 8, 8, 7, 7, 6, 6, 6, 5, 4, 4, 3, 3, 3, 2, 2, 1, 1, 0, 0]
你的方法很好。除以下内容外,无需更改。您需要做的就是反转排序条件。请参阅以下代码段中的注释。
for (int i = index + 1; i < list.length; i++) {
if (list[i] < list[minIndex]) // change < to >
minIndex = i;
}