考點分析 / 中央 / 106

106 中央資工所軟體考點分析

全卷 8 題皆為問答題,要手寫完整演算法。最大特色是有三題「給你一份 pseudo-code,要你改寫成另一個演算法」,合計 38 分。

題型與配分

科目全名「資料結構與演算法」(所別:資工類),全卷 5 頁、8 題、100 分,禁用計算器,作答寫在答案卷內。

全部是問答題,沒有任何選擇題。 這和近年中央軟體的出題方式差很多,寫這一年的考卷要有「動手寫演算法」的心理準備。

題號主題配分
1遞迴程式追蹤5
2Max heap 操作(3 小題)15
3BST 走訪與陣列表示法(3 小題)20
4Insertion sort 填空10
5NP-complete 證明(2 小題)12
6改寫搜尋演算法(3 小題)18
7延伸 Dijkstra10
8改寫 DP 演算法10

逐題考點

  • 第 1 題(5%)|追蹤一段分治法求最小值的遞迴程式,寫出 printf 的完整輸出。要注意遞迴呼叫的先後順序
  • 第 2 題(15%)|Max heap — (a) 把給定的二元樹調整成 max heap (b) 再插入 4 (c) 再刪除 8。三小題都要畫出結果的樹
  • 第 3 題(20%)|BST — (a) 寫出 postorder (b) 插入節點 5 後重畫整棵樹 (c) 二元樹存在陣列 A 中、節點 A[i] 的父節點存在 A[⌊i/2⌋],補完 preorder 遞迴函式的兩個空格
  • 第 4 題(10%)|Insertion sort 程式填空,兩個空格,考的是 insert 函式裡搬移元素的索引
  • 第 5 題(12%)|NP 理論 — 已知 X 是 NP-complete,(a) 如何利用多項式時間歸約證明 Y 是 NP-hard (b) 如何證明 Y 屬於 NP。這題要寫文字論證,不是選擇
  • 第 6 題(18%)|給定 BFS 的完整 pseudo-code,改寫成 DFS、hill climbing、best-first search 三種演算法,各 6 分。題目明確要求寫出完整的 input、output 和所有步驟
  • 第 7 題(10%)|給定 Dijkstra 的 pseudo-code,延伸它使其同時計入節點權重(終點節點的權重不列入路徑總長)
  • 第 8 題(10%)|給定 0/1 knapsack 的 DP 演算法,改寫成解 subset sum 問題

這份考卷的特點

  1. 「改寫 pseudo-code」是這份考卷的核心。 第 6、7、8 題合計 38 分全是這個型態 —— 給你一個你應該很熟的演算法,要你改動它的目標。光背演算法沒有用,必須真的懂每一行在做什麼。
  2. 畫圖題佔 35 分。 第 2、3 題要畫 heap 和 BST,中央很常考這種手繪題。
  3. 第 5 題是純文字論證,要寫得出歸約的方向(是把已知的 NP-complete 問題歸約到 Y,方向反了就零分)。

準備建議

  • 對 BFS、DFS、hill climbing、best-first search、Dijkstra、0/1 knapsack、subset sum 這幾個演算法,要能默寫出完整 pseudo-code,而不只是說得出概念
  • Heap 的插入與刪除、BST 的插入與走訪,要練到能快速手繪正確
  • NP-hard 與 NP-complete 的證明步驟(歸約方向、如何證明屬於 NP)要能用文字寫清楚

想看完整逐題詳解?

國立中央大學 106–115 全年度完整詳解共 344 頁,逐題推導。

購買 · NT$ 850 先看試閱

其他年度與考科