民國106年 第2梯次 電腦軟體設計(JAVA)乙級 學科
第28題
將右列堆積( H e a p ) [ 20151710125167311 ] ,依序新增14 、18 後,所形成的堆積, 下列何者正確?
題目
將右列堆積( H e a p ) [ 20151710125167311 ] ,依序新增14 、18 後,所形成的堆積, 下列何者正確?
- (1) [ 201517101451673111218 ]
- (2) [ 201518101217167311145 ]
- (3) [ 201517101251673111418 ]
- (4) [ 201518101417167311125 ]
官方答案
(4) [ 201518101417167311125 ]
解析
最大堆積新增元素時,先放到陣列末端,再與父節點比較並往上交換(sift-up)。原堆積為 20、15、17、10、12、5、16、7、3、11。插入 14:父節點為 12,因 14 大於 12 而交換,再與父節點 15 比較,因 14 小於 15 而停止,得 20、15、17、10、14、5、16、7、3、11、12。插入 18:父節點 5,交換;父節點 17,再交換;父節點 20,因 18 小於 20 而停止,結果為 20、15、18、10、14、17、16、7、3、11、12、5。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。