我试图在不使用字符串、数组或递归的情况下按升序对任意长度的整数的数字进行排序。
例子:
Input: 451467
Output: 144567
我已经想出如何用模数除法得到整数的每一位:
int number = 4214;
while (number > 0) {
IO.println(number % 10);
number = number / 10;
}
但我不知道如何在没有数组的情况下对数字进行排序。
不要担心 IO
类;这是我们教授给我们的定制课程。
原文由 What 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上有一个非常简单的算法, _只使用整数_:
它将打印出
1123447
。这个想法很简单:该算法的版本可以按 asc 和 desc 顺序排序,您只需更改条件即可。
另外,我建议你看看所谓的 Radix Sort , 这里 的解决方案采用了 radix sort 的一些想法,我认为 radix sort 是该解决方案的一般情况。