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 许可证,欢迎贡献代码。