逍遥兮容与 2011-09-12 20:30 采纳率: 100%
浏览 251
已采纳

海量数据多路归并的问题,求指点~

归并排序我知道:就是把两个有序序列归并为一个有序序列

海量数据的多路归并的思想我也看了,就是有一点不明白,它是一小段一小段归并的,那他是怎么做到整体有序的呢?

多路归并排序并不是把所有数据都读取到内存中,而是从每个文件中读取一小块数据,归并好就保存一小块,再读取下一小块

比方说1~2000 和2001~4000归并,10个10个归并

那结果就是:1,2,。。。,9,10,2001,2002,。。。,2009,2010

11,12,。。。,19,20,2011,2012,.。。,2019,2020

.。。。。。。。。。。。。。。

后面也是一样

那他怎么做到 整体的有序呢?

  • 写回答

2条回答 默认 最新

  • _1_1_7_ 2011-09-18 11:27
    关注

    找了一个描述:
    例如,需要归并文件A、B,则按固定长度从文件A、B中分别读取一小段AS、BS,将AS、BS的归并结果记录在CS中,如果AS先比较完(反之类似),则将CS追加写入文件C并清空CS内存,并从文件A中读取下一段保存在AS中,再运行归并函数,直到文件A或B完全读取完,再把剩下的AS或BS写入文件C
    好好理解一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?