标签: algorithm
对大型数组进行排序的最佳方法是什么?说我有1G RAM,阵列是16G。 这样做最有效的方法是什么? 我有足够的文件磁盘。
答案 0 :(得分:16)
拆分成块并一次将512MB排序为32个文件。然后将文件的流合并排序合并到一个文件中。
答案 1 :(得分:4)
如果它是一个整数数组,你可以使用一个天真的基数排序(O(n)),并且几乎不使用任何RAM。第一个问题是“它是什么类型的数据?”。如果是任意数据,那么外部mergesort可能是您的最佳选择。
(O(n))
-tjw