📌 30 秒摘要(Layer 3)
用大量圖解把演算法基礎講清楚:先學會用 Big-O 分析成本(時間/空間),再認識常見資料結構(陣列、鏈結串列、雜湊表、樹、圖)各自的取捨,最後掌握幾種演算法設計策略(分治、貪婪、動態規劃)。重點不是背程式碼,而是建立「面對問題時,該選什麼結構、用什麼策略、成本多少」的判斷力。
🗺 心智圖(Canvas)
演算法圖解
Link to original
🧰 這本書給我的工具
- 工具-時間複雜度分析 — 判斷一段程式/方案「會不會太慢」時
- 工具-資料結構的選擇 — 決定資料要用什麼結構存時
- 工具-演算法設計策略 — 面對演算法題、想不到解法時
✨ 關鍵重點(Layer 1–2)
- Big-O:描述輸入變大時成本的成長趨勢;O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ)。
- 資料結構取捨:陣列(隨機存取快、插入慢)、鏈結串列(插入快、查找慢)、雜湊表(平均 O(1) 查找)、樹/堆積、圖。
- 設計策略:分治(拆小再合,如快排/合併排序)、貪婪(每步取當下最佳)、動態規劃(重疊子問題記憶化)。
- 搜尋與排序:二分搜尋、遞迴、常見排序的複雜度。
💬 金句原文(Layer 0)
- 「選對資料結構,問題就解一半了。」
🔗 相關
- 像程式設計師一樣思考 —— 互補視角,本書給演算法知識,那本給卡住時的解題策略
- 程式設計方法 —— 互補視角,補上「從問題到程式」的系統化流程