排序一个巨大的数组

时间:2011-02-24 02:36:05

标签: algorithm

对大型数组进行排序的最佳方法是什么?说我有1G RAM,阵列是16G。 这样做最有效的方法是什么? 我有足够的文件磁盘。

2 个答案:

答案 0 :(得分:16)

拆分成块并一次将512MB排序为32个文件。然后将文件的流合并排序合并到一个文件中。

答案 1 :(得分:4)

如果它是一个整数数组,你可以使用一个天真的基数排序(O(n)),并且几乎不使用任何RAM。第一个问题是“它是什么类型的数据?”。如果是任意数据,那么外部mergesort可能是您的最佳选择。

-tjw