地特三等申論題
106年
[資訊處理] 資料結構
第 一 題
📖 題組:
給定下列數列,若以快速排序法(Quick Sort)、選擇排序法(Selection Sort)、堆積排序法(Heap Sort)、泡沫排序法(Bubble Sort)進行排序。請問下列數列是那一個排序法排序過程的暫時結果,並說明之。(每小題 5 分,共 20 分) 初始數列:75 93 32 81 75 89 89 99 25 78 54 75 87 12 75 28
給定下列數列,若以快速排序法(Quick Sort)、選擇排序法(Selection Sort)、堆積排序法(Heap Sort)、泡沫排序法(Bubble Sort)進行排序。請問下列數列是那一個排序法排序過程的暫時結果,並說明之。(每小題 5 分,共 20 分) 初始數列:75 93 32 81 75 89 89 99 25 78 54 75 87 12 75 28
📝 此題為申論題,共 4 小題
小題 (一)
99 93 89 81 78 87 89 75 25 75 54 75 32 12 75 28
思路引導 VIP
觀察數列特徵,檢查是否滿足特定資料結構(如最大堆積樹的父節點大於等於子節點)或排序演算法的特徵(如已排序區段、Pivot 分割點)。利用排除法與結構性質驗證,即可找出對應的排序法。
小題 (二)
25 28 32 75 12 75 54 75 99 78 89 89 87 75 81 93
思路引導 VIP
觀察數列的頭尾是否已經呈現排序完成的狀態,以排除選擇排序與泡沫排序。接著尋找陣列中是否存在一個「樞紐(Pivot)」元素,其左側元素皆小於等於它、右側皆大於等於它,藉此驗證是否符合快速排序法的特徵。
小題 (三)
12 25 28 32 54 75 75 75 75 78 81 87 89 99 93 89
思路引導 VIP
觀察數列可以發現,前半段(前13個元素)已呈現完美的遞增排序,且皆為數列中最小的元素;而後半段(最後3個元素)則是未排序的狀態。這符合「選擇排序法」每次挑選最小值放到前端的特徵,接著透過排除法與實際模擬交換過程即可確認。
小題 (四)
32 75 75 81 89 25 78 54 75 87 12 75 28 89 93 99
思路引導 VIP
觀察數列尾端已出現三個最大元素(89, 93, 99)且排好序,可初步推測是會將最大值逐一固定於尾端的排序法(如泡沫排序、選擇排序、堆積排序)。接著,檢視未排序區的特徵:首位元素為 32 不符合堆積排序的 Max-Heap 特性,且前半段元素有明顯的相鄰交換痕跡而非單純的尾部交換,可確認為泡沫排序法。