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