45得票5回答
外部归并排序算法是如何工作的?

我正在尝试理解外部合并排序算法的工作原理(我看到了一些相同问题的答案,但没有找到我需要的)。我正在阅读Jeffrey McConnell的《算法分析》一书,并尝试实现其中描述的算法。 例如,我有输入数据:3,5,1,2,4,6,9,8,7,而我只能将其中4个数字加载到内存中。 我的第一步是...

12得票4回答
在C++中高效读取大型文本文件

我有一个非常大的文本文件(45GB)。每行文本文件都包含两个用空格分隔的64位无符号整数,如下所示: 4624996948753406865 10214715013130414417 4305027007407867230 4569406367070518418 108179056569...

12得票5回答
使用只有1GB RAM的计算机对1TB文件进行排序

这个问题看起来很简单,但我不明白它背后的真正工作原理。我知道人们会说,将文件分成512兆字节的块,然后使用Map Reduce像使用归并排序一样对它们进行排序。 那么这就是我的实际问题:假设我将文件分成512兆字节的块,然后发送到不同的主机上进行排序。假设这些机器使用了归并排序。现在假设我有...

10得票1回答
多路归并 vs 二路归并

当我们对一个大文件进行外部归并排序时,我们将其分成小文件,对这些小文件进行排序,然后将它们合并回一个大的有序文件。 在合并时,我们可以进行多个二路合并或者一次多路合并。 我想知道哪种方法更好?为什么?