这是一道谷歌面试题:
有两台机器,每台机器都有64GB的RAM,其中包含所有整数(8字节),请对整个128GB数据进行排序。您可以假设有少量额外的RAM。请扩展该问题以对存储在1000台机器中的数据进行排序。
我想到了外部排序。我们将整个数据分成多个块,并对它们使用归并排序。也就是先对这些块进行排序,然后将它们放回去,并逐个将它们取出来合并。是否有更好的方法?复杂度会是多少?
我想到了外部排序。我们将整个数据分成多个块,并对它们使用归并排序。也就是先对这些块进行排序,然后将它们放回去,并逐个将它们取出来合并。是否有更好的方法?复杂度会是多少?