当被排序的数据是:
a) 独一无二
b) 在完全随机的位置
c) 数量多(>1m)
d) 数据在内存中,在一个 vector 中
e) 它们是字符数组
f) 我不关心算法将使用多少内存
我知道,这种问题可能有很多变数,所以我尽量提供了尽可能多的信息。
最佳答案
因为你有字符数组并且不关心内存(虽然,你确实受到可用硬件内存的限制,所以我不知道你怎么不关心)你可以使用基数排序。它的复杂度为 O(n)。您还可以非常轻松地并行化此算法。
关于c++ - 唯一数据的排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20582276/