習題集解析部分html
第11章 外部排序算法
——《數據結構題集》-嚴蔚敏.吳偉民版數據結構
源碼使用說明 連接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明測試
課本源碼合輯 連接☛☛☛ 《數據結構》課本源碼合輯spa
習題集全解析 連接☛☛☛ 《數據結構題集》習題解析合輯操作系統
相關測試數據下載 連接☛ 數據包設計
本習題文檔的存放目錄:數據結構\▼配套習題解析\▼11 外部排序3d
文檔中源碼的存放目錄:數據結構\▼配套習題解析\▼11 外部排序\▼習題測試文檔-11htm
源碼測試數據存放目錄:數據結構\▼配套習題解析\▼11 外部排序\▼習題測試文檔-11\Datablog
11.1❶假設某文件經內部排序獲得100個初始歸併段,試問:
(1)若要使多路歸併三趟完成排序,則應取歸併的路數至少爲多少?
(2)倘若操做系統要求一個程序同時可用的輸入、輸出文件的總數不超過13,則按多路歸併至少需幾趟可完成排序?若是限定這個趟數?則可取的最低路數是多少?
11.2❷假設一次I/O的物理塊大小爲150,每次可對750個記錄進行內部排序,那麼,對含有150000個記錄的磁盤文件進行4-路平衡歸併排序時,需進行多少次I/O?
11.3❶「敗者樹」中的「敗者」指的是什麼?若利用敗者樹求k個數中的最大值,在某次比較中獲得a>b,那麼誰是敗者?「敗者樹」與「堆」有何區別?
11.4❷手工執行算法k-merge,追蹤敗者樹變化過程。假設初始歸併段爲:
(10, 15, 16, 20, 31, 39, +∞);
(9, 18, 20, 25, 36,48, +∞);
(20, 22, 40, 50, 67, 79, +∞);
(6, 15, 25, 34, 42, 46, +∞);
(12, 37, 48, 55, +∞);
(84, 95, +∞)
11.5❷爲何置換-選擇排序能獲得平均長度爲2w的初始歸併段?可否依置換-插入或置換-交換等策略創建相似的排序方法?
11.6❷設內存有大小爲6個記錄的區域可供內部排序之用,文件的關鍵字序列爲(51, 49, 39, 46, 38, 29, 14, 61, 15, 30, 1, 48, 52, 3, 63, 27, 4, 13, 89, 24, 46, 58, 33, 76)。試列出:
(1)用第10章中的內部排序方法求出的初始歸併段;
(2)用置換-選擇排序得出的初始歸併段,並寫出FI,W和FO的變化過程;
(3)用上面給出的數據手工執行算法repl-selection。
11.7❶試問輸入文件在哪一種狀態下經由置換-選擇排序獲得的初始歸併段長度最長?其最長的長度是多少?
11.8❶試問輸入文件在哪一種狀態下經由置換-選擇排序獲得的初始歸併段長度最短?其最短的長度是多少?
11.9❶倘若一個經由置換-選擇排序獲得的輸出文件再次進行置換-選擇排序,試問該文件將產生什麼變化?
11.10❷在輸入文件爲逆序的狀況下,由11.13題所描述的天然選擇排序獲得的初始歸併段的平均長度爲多少?
11.11❷已知某文件通過置換-選擇排序以後,獲得長度分別爲47, 9, 39, 18, 4, 12, 23和7的八個初始歸併段。試爲3-路平衡歸併設計一個讀寫外存次數最少的歸併方案,並求出讀寫外存的次數。
11.12❷已知有31個長度不等的初始歸併段,其中8段長度爲2,8段長度爲3,7段長度爲5,5段長度爲12,3段長度爲20(單位均爲物理塊)。請爲此設計一個5-路最佳歸併方案,並計算總的(歸併所需的)讀/寫外存的次數。
轉載註明出處:原文連接
11.13❹假設在進行置換-選擇排序時,可另開闢一個和工做區的容量相同的輔助存儲區(稱儲備庫)。當輸入的記錄關鍵字小於剛輸出的MINIMAX記錄時,不將它存入工做區,而暫存在儲備庫中,接着輸入下一記錄,依次類推,直至儲備庫滿時再也不進行輸入,而只從工做區中選擇記錄輸出直至工做區空爲止,至此獲得一個初始歸併段。以後,再將儲備庫中記錄傳送至工做區,從新開始選擇排序。這種方法稱天然選擇排序。通常狀況下可求得比置換-選擇排序更長的歸併段。
(1)試對11.4節中文件例子進行天然選擇排序,求初始歸併段。
(2)編寫天然選擇排序的算法。