我想按字典顺序对大量整数(比如 1 百万个元素)进行排序。
例子:
input [] = { 100, 21 , 22 , 99 , 1 , 927 }
sorted[] = { 1 , 100, 21 , 22 , 927, 99 }
我已经用最简单的方法做到了:
- 将所有数字转换为字符串(非常昂贵,因为它会占用大量内存)
- 使用
std:sort
和strcmp
作为比较函数 - 将字符串转换回整数
还有比这更好的方法吗?
最佳答案
使用 std::sort()
具有合适的比较功能。这减少了内存需求。
比较函数可以使用n % 10
、n/10 % 10
、n/100 % 10
等来访问个体数字(对于正整数;负整数的工作方式略有不同)。
关于c++ - 按字典顺序对整数数组进行排序 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588809/