在不使用数组的情况下对数字进行排序

use*_*908 -3 arrays sorting

我的作业需要做的是将正数的数字从低到高排序.

我可以用

  • 运营商
  • 整数/双打/花车/字符
  • if/switch和loops

我不能用

  • char数组()

Mik*_*e B 16

这样做!

int number = 52146729;
int sortedNumber = 0;
for (int i = 9; i >= 0; i--)
{
    int tmpNumber = number;
    while (tmpNumber > 0)
    {
        int digit = tmpNumber % 10;             
        if (digit == i)
        {
            sortedNumber *= 10;
            sortedNumber += digit;
        }
        tmpNumber /= 10;                
    }               
}
System.out.println(sortedNumber);
Run Code Online (Sandbox Code Playgroud)

这是java btw.鉴于这些限制,这是非常有效的,O(n).

  • 非常聪明的解决方案! (2认同)