在这种情况下,计数排序可能不起作用,因为k的值范围是大的。
可以快速排序用于大数据吗?
答案 0 :(得分:0)
数以百万计的元素通常不被视为大数据,所以我相信在这种情况下,快速排序可以解决这个问题。
您可以通过将数组拆分为q
子数组,并行排序,然后使用 k-way-merge 合并生成的排序子数组来稍微强制它。
但是,如果您的数据非常庞大(10 ^ 9 +) - 您要考虑将作业分发到一组计算机。
一种可扩展的方法是 map-reduce 。
The first slides of this class讨论了使用Map-Reduce排序。
您可能想要尝试名为Hadoop的Java开源实现。
答案 1 :(得分:0)
如果您的数据太大而无法放入主内存,我首先要尝试的是STXXL,即外部内存算法的STL替换。它应该比设置Hadoop集群更容易使用。它还具有多核并行性。
那就是C ++,如果Java是一个很难的要求,你可能想要谷歌等同于Java。