如何对没有数组的数字进行排序

时间:2018-07-03 19:48:58

标签: java sorting numbers

我想对数字 排序而不使用数组 。我有这个:

 Scanner s = new Scanner(System.in);
    System.out.print("Input 3 numbers: ");
    int a = s.nextInt();
    int b = s.nextInt();
    int c = s.nextInt();

    System.out.print("Increscent: ");

    if (a >= b) { 
        int temp; 

        temp = a;
        a = b;
        b = temp;
    }

    if (c < a) 
    {
        System.out.println(c + " " + a + " " + b);
    } else if (c > b) 
    {
        System.out.println(a + " " + b + " " + c);
    } else 
    {
        System.out.println(a + " " + c + " " + b);
    }

但是,如果我想使用更多数字该怎么办?是否有一些更好的代码,或者我必须一直使用这种方式?

2 个答案:

答案 0 :(得分:2)

数组的用途是使您可以拥有多个相似的数据。像一个整数。事后看来,您可能会放置数百个变量,也可以将它们放在一行上。

您认为什么更好?

int a;
int b;
int c;
int d;

int a[];

对于函数,有些方法具有许多参数,例如varargs。但是从长远来看,这些工作还是像数组一样。

关于排序算法,有数百种不同的排序算法,还有一些超级通用的算法。

varargs An example of use of varargs in C

排序算法 https://en.wikipedia.org/wiki/Sorting_algorithm

edit:刚刚意识到这是Java,但是同样的理论也适用 Java variadic function parameters

答案 1 :(得分:0)

好吧,您可以执行以下操作:Sort 4 numbers without array

让我来帮助您

int tmp;

if (a > b) { tmp = a; a = b; b = tmp; }
if (a > c) { tmp = a; a = c; c = tmp; }
if (b > c) { tmp = b; b = c; c = tmp; }

System.out.println(a + " " + b + " " + c);