我想对数字 排序而不使用数组 。我有这个:
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);
}
但是,如果我想使用更多数字该怎么办?是否有一些更好的代码,或者我必须一直使用这种方式?
答案 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);