Hasty Briefsbeta

双语

Tieredsort: Header only, blazing fast (3-4x) C++17 sorting for numeric types

2 months ago
  • #sorting
  • #C++
  • #performance
  • tieredsort 是一个仅需头文件的 C++17 排序库,针对数值类型进行了优化。
  • 在随机数据上比 std::sort 快 3.6 倍,在稠密/少重复数据上快 16-21 倍。
  • 能根据数据特征自动选择最佳排序策略。
  • 支持 int32_t、uint32_t、int64_t、uint64_t、float 和 double 类型。
  • 通过 sort_by_key() 支持对象的稳定排序。
  • 无需外部依赖或 SIMD 指令。
  • 对 32 位类型有显著加速(3.5-5 倍),对 64 位类型有适度提升(1.4-1.8 倍)。
  • 采用三层决策树选择算法:小数据量用 std::sort,稠密范围用计数排序,默认用基数排序。
  • 采用 MIT 许可证,欢迎贡献代码。