微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将数组中的数字从大到小排序?

如何解决如何将数组中的数字从大到小排序?

我能够将矩阵中的数字从小到大排序,但无法从大到小排序。请帮忙...

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 + " ");

解决方法

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,8,1,4,7,3,6,2,5,2]
[9,0]
,

你的方法很好。除以下内容外无需更改。您需要做的就是反转排序的条件。请参阅以下代码段中的注释。

for (int i = index + 1; i < list.length; i++) {
    if (list[i] < list[minIndex]) // change < to >
        minIndex = i;
}
,
import java.util.Arrays;
import java.util.Comparator;
Integer[] array = ...
Arrays.sort( array,Comparator.reverseOrder() );

现在数组中的元素已经排序

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。