在离线排序时,数据集大小超过RAM大小会发生什么?

时间:2015-07-28 07:05:08

标签: sorting

在离线排序时,数据集大小超过RAM大小会发生什么? 我必须对一个大文本文件进行排序,并想知道如果我的文本文件文件的大小超过RAM大小会发生什么。

1 个答案:

答案 0 :(得分:0)

离线排序正好适用于无法将数据集放入RAM的情况。一般的想法是将数据集分成更小的部分,每个部分可以适合存储器,并且独立于其他部分对每个部分进行排序。之后,您可以将它们组合在一起。

最常见的外部排序算法是外部合并排序。首先将输入拆分为一些固定大小的块 - 通常,尽可能多地放入RAM中 - 然后单独对这些块进行排序并将排序后的版本写回磁盘。然后,您执行k-way合并操作以将所有已排序的序列组合在一起;所使用的具体算法通常是普通双向合并算法的推广,并结合一些缓冲来最小化磁盘读取。

一种不太常见的方法是使用快速排序和双端优先级队列。您可以阅读有关此here的更多信息。