c++ - 按字典顺序对整数数组进行排序 C++

标签 c++ arrays sorting lexicographic

我想按字典顺序对大量整数(比如 1 百万个元素)进行排序。

例子:

input [] = { 100, 21 , 22 , 99 , 1  , 927 }
sorted[] = { 1  , 100, 21 , 22 , 927, 99  }

我已经用最简单的方法做到了:

  • 将所有数字转换为字符串(非常昂贵,因为它会占用大量内存)
  • 使用 std:sortstrcmp 作为比较函数
  • 将字符串转换回整数

还有比这更好的方法吗?

最佳答案

使用 std::sort()具有合适的比较功能。这减少了内存需求。

比较函数可以使用n % 10n/10 % 10n/100 % 10等来访问个体数字(对于正整数;负整数的工作方式略有不同)。

关于c++ - 按字典顺序对整数数组进行排序 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588809/

相关文章:

python - 将位串 numpy 数组转换为整数基数 2 的最快方法

javascript - 按字符串排序数组

bash - 按日期将文件分类到子文件夹中 - bash

c++ - gtest/gmock 是否有办法对类的每个实例进行 stub ?

c++ - gtest 编译期间的 Cmake 错误 - gtest/internal/gtest-type-util.h :732:25: error: expected type-specifier

c++ - 在 carbide 2.7 中调试 exe 和 dll 项目

python - 加速 Numpy/Python 中的数组查询

c++ - 不使用数组进行计算

linux - Bash CSV 排序和唯一性

c++ - C++0x 中有哪些新的 Unicode 函数?