課本源碼部分
第11章 外部排序 - 置換-選擇排序
——《數據結構》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
文檔中源碼及測試數據存放目錄:數據結構\▲課本算法實現\▲10 內部排序\02 ReSeSort
概述
置換-選擇排序(Replacement-Selection Sorting)也是樹形選擇排序的基礎上得來的,它的特點是:在整個排序(得到所有初始歸並段)的過程中,選擇最小(或最大)關鍵字和輸入、輸出交叉或平行進行。
解析
置換-選擇排序的主要思路是:用敗者樹從已經傳遞到內存中的記錄中找到關鍵值最小(或最大)的記錄,然后將此記錄寫入外存,再將外存中一個沒有排序過的記錄傳遞到內存(因為之前那個記錄寫入外存后已經給它空出內存),然后再用敗者樹的一次調整過程找到最小關鍵值記錄(這個調整過程中需要注意:比已經寫入本初始歸並段的記錄關鍵值小的記錄不能參見篩選,它要等到本初始段結束,下一個初始段中才可以進行篩選),再將此最小關鍵值記錄調出,再調入新的記錄.......依此進行指導所有記錄已經排序過。內存中的記錄就是所用敗者樹的葉子節點。
源碼
文件一 ☛ ReSeSort.h
文件二 ☛ ReSeSort.c
文件三 ☛ ReSeSort-main.c (測試文檔)
文件四 ☛ TestData.txt(排序表測試數據)
測試結果展示