使用k-way合并与快速排序的外部排序

时间:2010-09-16 19:42:05

标签: external-sorting

哪一个更好? 说1GB内存和100GB文件进行排序。

10路合并需求的一个实例:        - 100个1GB负载,然后10 * 10 + 10 * 100个100MB负载(10路然后10路合并)

Quicksort需要100 * 7 * 2(nlogn)1GB负载吗?

2 个答案:

答案 0 :(得分:2)

合并排序在处理大数据时效率更高。

原因是因为快速排序是一种上下方法, 这意味着你必须首先处理100GB,然后处理50GB * 2 ...... 当你有大量数据时,不可能将整个数据放入内存中。

换句话说,合并排序是一种自下而上的方法,如您所述,您可以分离数据 进入可以装入内存的小批量,并将它们合并到缓冲区中。

答案 1 :(得分:0)

主要瓶颈实际上是读取和写入硬盘驱动器。我们从硬盘驱动器中读取每个元素两次,并从硬盘驱动器中写入两次元素。每一个用于排序块,然后再一次用于多路合并。

相比之下,quicksort会将每个元素读/写平均O(log n)次。