數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt

數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt

ID:50322813

大小:80.00 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2020-03-08

數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt_第5頁(yè)
資源描述:

《數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言版 教學(xué)課件 作者 李云清 第11章_外排序.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、數(shù)據(jù)結(jié)構(gòu)李云清楊慶紅揭安全第11章外排序在排序操作中,當(dāng)待排序數(shù)據(jù)量很大而內(nèi)存中無(wú)法存儲(chǔ)所有的數(shù)據(jù)時(shí),僅僅使用內(nèi)排序是無(wú)法完成排序任務(wù)的,此時(shí)需要使用外存儲(chǔ)器進(jìn)行外排序。11.1外存儲(chǔ)器簡(jiǎn)介11.1.1磁盤存儲(chǔ)器11.1.2磁帶存儲(chǔ)器11.2文件簡(jiǎn)介11.2.1文件的邏輯結(jié)構(gòu)11.2.2文件的存儲(chǔ)結(jié)構(gòu)11.3外排序------磁盤排序11.3外排序------磁盤排序外排序中的主要方法是歸并排序法。這種排序方法主要由兩大步驟構(gòu)成。第一步,根據(jù)內(nèi)存可用空間的大小將待排序文件分成若干個(gè)子文件逐個(gè)調(diào)入內(nèi)存,

2、保證每個(gè)子文件都能利用選定的內(nèi)排序算法進(jìn)行排序,并將排序后的所有有序子文件再依次寫入外存。這些已排序的子文件稱為初始有序串。第二步,對(duì)這些有序串進(jìn)行逐趟歸并,使有序串的長(zhǎng)度不斷增大,而有序串的個(gè)數(shù)不斷減少。反復(fù)執(zhí)行第二步,直至得到整個(gè)有序文件為止。第一步的實(shí)質(zhì)是內(nèi)排序,第二步是外排序的主要內(nèi)容。11.3.1磁盤排序外排序中使用的外存是磁盤存儲(chǔ)器稱為磁盤排序。磁盤排序的思想用一個(gè)實(shí)例說(shuō)明。設(shè)有一個(gè)待排序文件含有54000個(gè)記錄:R1,R2,……,R54000。計(jì)算機(jī)系統(tǒng)中現(xiàn)有可用內(nèi)存空間可以對(duì)9000個(gè)

3、記錄進(jìn)行排序。待排序文件存放在磁盤上,設(shè)盤上每個(gè)塊可存放300個(gè)記錄,排序過(guò)程如下所述。首先,從磁盤上讀入30個(gè)塊共9000個(gè)記錄放入內(nèi)存,在內(nèi)存中進(jìn)行內(nèi)排序,得到一個(gè)有序串,反復(fù)進(jìn)行,整個(gè)文件每9000個(gè)記錄作一次內(nèi)排序,可以得到6個(gè)有序串S1,S2,S3,S4,S5,S6。每個(gè)初始有序串有30個(gè)塊組成,其中每個(gè)初始有序串在圖示中用3個(gè)小方框表示,每個(gè)小方框代表10個(gè)塊。其次,取3個(gè)內(nèi)存塊,每塊可放300個(gè)記錄。用其中兩塊作為輸入緩沖區(qū),另一塊作為輸出緩沖區(qū)。先對(duì)有序串S1和S2進(jìn)行歸并,為此,可把

4、這兩個(gè)有序串中各自的第一個(gè)塊讀入分別寫入兩個(gè)輸入緩沖區(qū),這兩個(gè)輸入緩沖區(qū)的記錄分別是有序的。利用上一章講述的歸并排序方法的思路,對(duì)兩個(gè)輸入緩沖區(qū)的記錄進(jìn)行歸并,將歸并結(jié)果寫入輸出緩沖區(qū)。歸并過(guò)程中,當(dāng)輸出緩沖區(qū)滿時(shí),就將輸出緩沖區(qū)中的內(nèi)容寫入磁盤;當(dāng)一個(gè)輸入緩沖區(qū)騰空時(shí),便把同一有序串的一下塊讀入,這樣不斷進(jìn)行,直到有序串S1和有序串S2的歸并完成。用同樣的方法將S3和S4、S5和S6分別歸并。這樣整個(gè)文件經(jīng)這一趟歸并后可以得到3個(gè)有序串。這趟歸并需要對(duì)整個(gè)文件中的所有記錄讀寫一次(即從磁盤上讀入內(nèi)存

5、一次,并從內(nèi)存寫到磁盤一次),并在內(nèi)存中參加一次歸并。反復(fù)對(duì)每?jī)蓚€(gè)有序串進(jìn)行歸并,最后得到一個(gè)有序串,即為排序結(jié)果。歸并過(guò)程見圖11.3.2多路歸并(略)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。