外部排序
假設(shè)文件需要分成k塊讀入虎眨,需要從小到大進(jìn)行排序蟋软。
(1)依次讀入每個(gè)文件塊,在內(nèi)存中對當(dāng)前文件塊進(jìn)行排序(應(yīng)用恰當(dāng)?shù)膬?nèi)排序算法)嗽桩。此時(shí)岳守,每塊文件相當(dāng)于一個(gè)由小到大排列的有序隊(duì)列。
(2)在內(nèi)存中建立一個(gè)最小值堆碌冶,讀入每塊文件的隊(duì)列頭棺耍。
(3)彈出堆頂元素,如果元素來自第i塊种樱,則從第i塊文件中補(bǔ)充一個(gè)元素到最小值堆。彈出的元素暫存至臨時(shí)數(shù)組俊卤。
(4)當(dāng)臨時(shí)數(shù)組存滿時(shí)嫩挤,將數(shù)組寫至磁盤,并清空數(shù)組內(nèi)容消恍。
(5)重復(fù)過程(3)岂昭、(4),直至所有文件塊讀取完畢狠怨。