習題集解析部分
第11章 外部排序
——《數據結構題集》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
相關測試數據下載 鏈接☛ 數據包
本習題文檔的存放目錄:數據結構\▼配套習題解析\▼11 外部排序
文檔中源碼的存放目錄:數據結構\▼配套習題解析\▼11 外部排序\▼習題測試文檔-11
源碼測試數據存放目錄:數據結構\▼配套習題解析\▼11 外部排序\▼習題測試文檔-11\Data
一、基礎知識題
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)編寫自然選擇排序的算法。