多路歸併排序

將一個大文件分割爲小文件,對小文件進行內存排序,在對排序後的小文件做合併即可。關於合併,可以採用堆來實現,堆中存儲每個小文件中的最小值,以此從堆中取出最小值,輸入到結果文件,同時從最小值對應文件中取出下一個最小值,保持堆依然存儲每個小文件的最小值。

如果只需要對文件按鍵值分組(不關心鍵之間的順序),則採用哈希函數,將不同的鍵值對應的記錄劃分到不同的文件,對子文件進行排序即可,然和直接合並子文件即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章