我正在尝试按升序对任意长度整数的数字进行排序,而不使用字符串,数组或递归。
例:
Input: 451467
Output: 144567
我已经弄清楚如何用模数除法获得整数的每个数字:
int number = 4214;
while (number > 0) {
IO.println(number % 10);
number = number / 10;
}
但是我不知道如何在没有数组的情况下排序数字。
不用担心IO
上课;这是我们教授给我们的习俗课。
实际上有一个非常简单的算法,它 仅 使用 整数 :
int number = 4214173;
int sorted = 0;
int digits = 10;
int sortedDigits = 1;
boolean first = true;
while (number > 0) {
int digit = number % 10;
if (!first) {
int tmp = sorted;
int toDivide = 1;
for (int i = 0; i < sortedDigits; i++) {
int tmpDigit = tmp % 10;
if (digit >= tmpDigit) {
sorted = sorted/toDivide*toDivide*10 + digit*toDivide + sorted % toDivide;
break;
} else if (i == sortedDigits-1) {
sorted = digit * digits + sorted;
}
tmp /= 10;
toDivide *= 10;
}
digits *= 10;
sortedDigits += 1;
} else {
sorted = digit;
}
first = false;
number = number / 10;
}
System.out.println(sorted);
它会打印出来1123447
。这个想法很简单:
该版本的算法可以按升序将两个asc排序,您只需要更改条件即可。
另外,我建议您看一下所谓的Radix
Sort
,这里的解决方案从基数排序中获取一些想法,我认为基数排序是该解决方案的一般情况。
问题内容: 我有一个包含多个数组的数组,我想根据这些数组中的某个字符串对数组进行排序。 如何按名称排序,以便 阿尔伯特排 在首位, 齐默尔曼排 在最后? 我知道如果可以使用整数进行排序,但是字符串使我毫无头绪,该怎么办。 谢谢您帮忙!:) 问题答案: 这可以通过将支持函数作为参数传递给方法调用来实现。 像这样:
问题内容: 我创建了一个sqlite数据库,该数据库具有一个存储温度值的表。第一次将温度值以升序写入数据库。然后,我将数据库中的温度值读取到一个列表中,然后将该列表添加到组合框中以选择温度- 效果很好。 结果列表为: 然后,我向数据库添加一个新的温度值,例如“ 33”。 它被附加到表的末尾。如果我现在阅读温度,列表将变为: 如果我做或,最终的结果是 有什么简单的方法可以按升序对列表进行排序,以便得
问题内容: 我正在尝试使用来根据字符串的长度对字符串数组进行排序,但这会按字典顺序而不是按长度对字符串进行排序。这是我的代码: 排序后: 但是我想要的是 如何获得上述输出?请给出JDK 1.7和JDK1.8的答案。 问题答案: 如果您使用的是 JDK 1.8或更高版本,则可以使用 lambda表达式( 如 matt 答案)。但是,如果您使用的是 JDK 1.7或更早版本,请尝试编写一个 自定义Co
我试图计算每个字符串中的元音,我想根据count变量交换字符串,但我做不到。在接受字符串后,我用toCharArray()函数将其转换为char数组,并将每个字符与小写和大写元音进行比较。 我收到一个错误。编写代码部分的任何帮助都将不胜感激。 输入: 输出:
问题内容: 我有这样的txt文件中的数据列表 我的任务是按照每个标准对这些数据进行排序,例如)按日期,纬度和经度排序 我尝试像这样的泡沫排序 这可行,但是需要太多时间 那里有在txt文件数据 有没有其他方法可以对这些数据进行排序? 问题答案: 我可能会破坏一些学生的家庭作业,但是这里… 正如课题所建议的那样,Java的自然方法是创建一个表示您的数据的类。然后实现一个将传递给实用方法的方法。 在运行
问题内容: 我一直在寻找一种不用使用collections.sort就可以对数组列表进行排序的方法,因为我自己的逻辑有缺陷,而且我遇到了很多麻烦。 我需要对它进行排序,以便可以使用我创建的一种方法,该方法基本上可以执行collections.swap的工作,以便对数组列表进行完全排序。 这是我的代码: 我对此一直很烦恼。抱歉,这是在伤害社区。 问题答案: 我想,你希望下面的算法:在阵列的其余部分发