Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;算法/Boost库是否有基数排序?_C++_Algorithm_Sorting_Radix Sort - Fatal编程技术网

C++ C++;算法/Boost库是否有基数排序?

C++ C++;算法/Boost库是否有基数排序?,c++,algorithm,sorting,radix-sort,C++,Algorithm,Sorting,Radix Sort,我想对整数进行排序,我知道基数排序应该非常棒。此排序的任何库实现取决于您定义基数排序的严格程度,因为Boost 1.58.0包括,这是一种混合排序算法,启发式地混合了桶排序和比较排序 对于整数排序,并且不需要最坏情况Θ(n)效率,Spreadsort应该满足您的要求 为了便于讨论,您还可以看看我的实现,它的内存效率相当低,但有时比Spreadsort更快。您只需要基数排序分支,但我已链接到速度测试分支,因为它有自述文件。更实际的答案是是,因为1.58它有: 它有一种称为SpreadSort

我想对整数进行排序,我知道基数排序应该非常棒。此排序的任何库实现取决于您定义基数排序的严格程度,因为Boost 1.58.0包括,这是一种混合排序算法,启发式地混合了桶排序和比较排序

对于整数排序,并且不需要最坏情况Θ(n)效率,Spreadsort应该满足您的要求


为了便于讨论,您还可以看看我的实现,它的内存效率相当低,但有时比Spreadsort更快。您只需要基数排序分支,但我已链接到速度测试分支,因为它有自述文件。

更实际的答案是,因为1.58它有:


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

有一个线程提到有人编写了一个,但它正在等待审查。然而,我还不知道它已经成为boost了。@AyBayBay我认为正确地回答了这个问题。你能接受他的答案吗,或者给我一个不可接受的原因吗?@Yuushi似乎不在Boost或标准库中,但你可能会喜欢,这是一种经过微调的混合基数排序,支持投影:你可以编写
ska_排序(vec.begin(),vec.end(),[](const auto&value){return value.foo;})foo
字段进行code>太多排序。它是否优化了结构中的比较之类的内容operation@l4m2它不是自动的,但是是的,你可以说服它那样做。@l4m2我已经超出了我的能力范围,但有人已经做到了:这是《无冕之王》的大道具,同样是《l4m2》的整型改编