Q39.
將右列堆積(Heap)[15,13,9,5,12,8,7,4,0,1,2,6]的最大元素刪除後,所形成的堆積何者正確?
電腦軟體設計共同科目 · 乙級 · Q39
難易度分析
3 / 5
本題要求考生模擬最大堆積刪除根節點後的完整調整過程,需精確執行多次元素交換以維持堆積性質,且選項間差異極小,對操作精準度要求較高。
正確答案:②13,12,9,5,6,8,7,4,0,1,2
② 13,12,9,5,6,8,7,4,0,1,2:正確執行 heapify down 的結果。將末尾元素 6 替換至根後,依序與 13、12 交換下沉,最終停在索引 4 的位置(子節點 4 和 0 均小於 6),符合 最大堆積(Max-Heap) 的結構要求。
錯誤選項解析
- ① 13,9,5,12,8,7,4,0,6,2,1:此序列未正確執行 heapify down(向下調整) 程序。刪除根節點 15 後,將末尾元素 6 移至根位置,應與較大子節點交換,但此選項中 12 未上浮至正確位置,違反 最大堆積性質。
- ③ 13,12,9,5,2,8,7,4,0,1,6:元素 6 與 2 的位置顛倒,導致索引 4 的值為 2 而其子節點索引 9 的值為 1、索引 10 的值為 6,此時 6 > 2 違反 父節點必須大於等於子節點 的最大堆積性質。
- ④ 13,12,9,8,7,6,5,4,2,1,0:此為完全遞減排序序列,並非單一刪除操作後的堆積結果。堆積刪除 僅涉及根節點替換與局部 heapify 調整,不會重新排列所有元素成有序狀態。
Learning Tip
"最大堆積刪除 的核心步驟為:(1) 以末尾元素替換根節點,(2) 執行 heapify down 與較大子節點交換直至滿足堆積性質。常見陷阱為混淆 heapify up(插入時使用) 與 heapify down(刪除時使用) 的方向,或誤以為刪除後會產生完全排序的序列。"
學員答題分佈
①13,9,5,12,8,7,4,0,6,2,10%
②13,12,9,5,6,8,7,4,0,1,20%
③13,12,9,5,2,8,7,4,0,1,60%
④13,12,9,8,7,6,5,4,2,1,00%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!