首页 > 解决方案 > 反转数组打印的顺序

问题描述

我将如何将顺序从升序反转为降序?我有点难过,因为我不能使用 array.reverse 等,因为在我们的测试中,我们不允许使用 java 内置方法。这是一个无赖,arrays.sort 是惊人的。但截至目前,它确实按升序打印。我对编码和这个网站比较陌生,所以如果我的格式不好。我道歉。

public static int[] sort(int a, int b, int c) {
    int[] j = {a, b ,c};
    int i, k, temp = 0;

    for(i = 0; i < j.length; i++) {
        for(k = i + 1; k < j.length; k++) {
            temp = 0;
            if(j[i] > j[k]) {
                temp = j[i];
                j[i] = j[k];
                j[k] = temp;
            }
        }
    }
}

public static void main (String[] args) {

    System.out.println(Arrays.toString((sort(6,3,11))));

标签: javaarrays

解决方案


只需切换此行:

if(j[i] > j[k]) {

对此:

if(j[i] < j[k]) {

这是因为在现有代码中,如果第一个较大,则您正在交换元素(从而将较大的元素移到列表中的后面)。

当您使用第二个代码片段时,如果第一个较小,它会交换元素,从而将较小的元素移到列表的后面。


推荐阅读