第 99 章 入門 約 10 分鐘
期末總複習:考前一週做這些事
不是教新東西。告訴你考前一週怎麼安排、最該背的表格、最常考的題型、心態怎麼調。
建議先看過: 16-bst
恭喜你看到這裡
如果你從第 1 章一路看到這裡,你已經做了很多同學沒做的事。接下來的考試靠這個就行。
考前一週的安排
Day 7-5(一週前):翻一次所有章節的「這章記住」段落。不懂的回去看。
Day 4-3:每章寫一題「考試會這樣考」例題。真的拿筆寫,不要心算。
Day 2-1:背考前速翻表。動畫看一遍 Bubble Sort、Merge Sort、Dijkstra。
考試當天早上:再翻一次速翻表。不要看新東西,會慌。
必背的兩張表
排序演算法比較
| 演算法 | 最壞 | 平均 | 最好 | 空間 | 穩定 |
|---|---|---|---|---|---|
| Bubble | O(n²) | O(n²) | O(n) | O(1) | 是 |
| Insertion | O(n²) | O(n²) | O(n) | O(1) | 是 |
| Selection | O(n²) | O(n²) | O(n²) | O(1) | 否 |
| Merge | O(n log n) | O(n log n) | O(n log n) | O(n) | 是 |
| Quick | O(n²) | O(n log n) | O(n log n) | O(log n) | 否 |
資料結構操作複雜度
| 操作 | 陣列 | 鏈結串列 | BST 平衡 | 雜湊表 |
|---|---|---|---|---|
| 查詢 | O(n) | O(n) | O(log n) | O(1) |
| 插入 | O(n) | O(1)* | O(log n) | O(1) |
| 刪除 | O(n) | O(1)* | O(log n) | O(1) |
| 排序走訪 | O(n log n) | O(n log n) | O(n) | O(n log n) |
*鏈結串列的 O(1) 是「已知位置時」
最常考的 5 種題型
1. 給程式碼問 Big-O
訣竅:數迴圈層數,看每層次數變化。
2. 給陣列追蹤排序過程
訣竅:畫表格,每一輪寫一行。
3. 畫遞迴樹 / DP 表
訣竅:節點/格子標清楚對應的 n 值。
4. 給圖跑 BFS / DFS / Dijkstra
訣竅:題目要求的鄰居順序要照做(通常字母序)。
5. 比較兩個演算法
訣竅:列表格比較最壞、平均、空間、穩定性。
答題技巧
沒把握時不要空白。即使不完全會,寫出思路也能拿部分分數。
畫圖會被多給分。畫流程、樹、表格都是「努力的證據」。
寫複雜度時不要忘記 O()。寫 n² 沒寫 O(n²) 會被扣。
雙看題目。「最壞情況」vs「平均情況」差別很大,問哪個就答哪個。
心態調整
💡如果你之前考不及格
別擔心。演算法的考試有套路:
- 排序追蹤 → 畫表格
- BST 插入 → 一個一個走
- BFS/DFS → 用 queue/stack 列出順序
- DP → 寫狀態方程 + 填表
這些都是有步驟可以照做的,不需要靈感。 照步驟做完,分數就有了。
⚠️不要陷入完美主義
有些章(紅黑樹的旋轉、Master Theorem 的證明)很難。 先把簡單章拿穩,難的章拿一半分數就好。 這樣總分絕對及格。
考試前一晚的儀式
- 把這個網站的考前速翻表印出來。
- 早點睡。沒睡飽寫不對追蹤題——你會把 swap 寫反、把箭頭畫錯。
- 帶兩支筆、一個橡皮擦。作答時很多人會寫錯要塗改。
最後的話
演算法看似抽象,但每個演算法都對應某個生活情境。
- Bubble Sort = 排撲克牌
- BFS = 朋友傳話
- DP = 算過的別再算
- BST = 字典查字
忘了演算法名字時,回到那個情境去想,常常就能推出來。
祝你考過。 🎓
按下「我看懂了」,這個系列就走完了。下次有需要回來翻翻就好。
學習進度只存在你的瀏覽器,不會上傳。