java - 如何在没有字符串或数组的情况下按升序对整数数字进行排序?

标签 java sorting modulo

我试图在不使用字符串、数组或递归的情况下对任意长度的整数的数字进行升序排序。

例子:

Input: 451467
Output: 144567

我已经想出了如何用模数除法得到整数的每一位:

int number = 4214;

while (number > 0) {
    IO.println(number % 10);
    number = number / 10;
}

但我不知道如何在没有数组的情况下对数字进行排序。

不用担心 IO 类;这是我们教授给我们的定制类(class)。

最佳答案

它是 4 行,基于 while 循环的 for 循环变体和一点 java 8 spice:

int number = 4214;

List<Integer> numbers = new LinkedList<>(); // a LinkedList is not backed by an array
for (int i = number; i > 0; i /= 10)
    numbers.add(i % 10);
numbers.stream().sorted().forEach(System.out::println); // or for you forEach(IO::println)

关于java - 如何在没有字符串或数组的情况下按升序对整数数字进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33971256/

相关文章:

java - 想要根据产品价格过滤产品并打印过滤后的产品

c# - C# 中的列表框排序

ruby-on-rails - 在 Ruby 中按 boolean 值排序对象

algorithm - 接近模数使用的算法

java - 为什么使用的堆突然减少?

java - Android 中的 JSON 解码

java - 每个 jsf 的 C 都不起作用。日本科学基金会

c++ - 合并排序 - 返回一个新数组而不是将合并后的数组复制到输入数组

C# ModInverse 函数

c - 在 C 中使用硬件定时器