基礎概念 (Fundamentals)#

在深入學習資料結構與演算法之前,我們需要先建立正確的學習動機與分析能力。本章涵蓋四個核心主題:

  1. 為什麼要學習演算法:釐清學習動機,理解不同角色的學習必要性
  2. 複雜度分析:掌握演算法分析的核心工具——時間與空間複雜度,以及「問題下界」的思維
  3. 演算法思維總綱:貫穿全書的思考方法——逆向思維、消除無用功、抽象等價
  4. 可計算性與問題的邊界:在「要多久」之上,理解「能不能解」這一層更根本的界線

複雜度分析是整個演算法學習的精髓,掌握了它,資料結構和演算法的內容基本上就掌握了一半。