什么是一种有效的算法来排序文件中的数百万行整数?

时间:2013-07-29 10:28:05

标签: java algorithm sorting data-structures complexity-theory

在这种情况下,计数排序可能不起作用,因为k的值范围是大的。

可以快速排序用于大数据吗?

2 个答案:

答案 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。