C ++算法/ Boost Lib是否具有Radix排序?

时间:2014-01-21 06:46:42

标签: c++ algorithm sorting radix-sort

我想对整数进行排序,我知道基数排序应该是非常棒的。这种类型的库实现吗?

2 个答案:

答案 0 :(得分:2)

取决于你如何严格定义基数排序,因为Boost 1.58.0包含Spreadsort,这是一种混合排序算法,启发式混合存储桶和比较排序。

为了排序整数并且不要求最坏情况下的Θ(n)效率,Spreadsort应该让你满意。

为了论证,您还可以查看我的LSD radix sort实现,这对内存效率相当低,但偶尔比Spreadsort快。你只需要radix_sort分支,但我已经链接到speed_test分支,因为它有自述文件。

答案 1 :(得分:2)

更真实的答案是,因为1.58确实如此:

它有一个称为SpreadSort的东西,它将“神奇地”检测类似std::string等类型的优化路径,或者可以视为字节数组的浮点数。