返回課程
AI028 本科

Python數據結構與算法分析 (第2版)

本書是使用Python闡述數據結構與算法的经典教材。涵蓋了Python基礎複習、算法分析(大O記法)、基本數據結構(棧、隊列、列表)、遞歸、搜索與排序、樹及圖算法。通過實戰代碼清單,幫助讀者理解如何透過Python高效地實現各種抽象數據類型。

4.7
24.0h
1028 學習者
8 堂課
1 讚好
人工智能
開始學習

課程總覽

內容概要

本書是使用 Python 阐述資料結構與演算法的經典教材。涵蓋了 Python 基礎複習、演算法分析(大 O 記法)、基本資料結構(堆疊、佇列、列表)、遞迴、搜尋與排序、樹及圖演算法。透過實戰程式碼清單,幫助讀者理解如何透過 Python 高效地實現各種抽象資料類型。

唯有徹底掌握資料結構與演算法,才能真正精通 Python。

作者: 布拉德利·米勒(美國路德學院計算機科學榮譽教授)、戴維·拉努姆(IBM Watson 認知軟體工程師)

致謝: 感謝同事史蒂夫·哈伯德為第一版提供的大量反饋以及為新版提供的新素材,同時感謝各地同行寄信指出錯誤並提供意見。感謝迪科拉市 Java John's 咖啡館的瑪麗、鮑勃等服務生,允許我們在休假期間成為店內的「常駐作者」。此外,感謝 Franklin, Beedle & Associates 出版公司各位員工(特別是吉姆·萊西和湯姆·薩姆納)愉快的合作。最後,特別感謝我們兩人的妻子珍·米勒與布倫達·拉努姆,她們的愛與支持使本書終於成形。

學習目標

  1. 理解電腦科學、演算法與程式設計之間的關係,並掌握抽象資料類型 (ADT) 與資訊隱藏的概念。
  2. 熟練運用 Python 的內建集合資料類型(列表、元組、集合、字典)及控制結構(迴圈、分支、例外處理)。
  3. 掌握 Python 面向物件程式設計的核心:包括類別的定義、建構方法、運算子重載(如分數加法)、歐幾里得演算法應用,以及深淺相等的差異。
  4. 演算法多方案對比:能夠解釋異序詞檢測的四種方案(計數、排序、暴力、計數)及其對應的時間複雜度。
  5. Python 容器效能量化:掌握 Python 列表 (List) 與字典 (Dict) 核心操作的大 O 效率,並能區分 pop() 與 pop(i) 的效能差異。
  6. 性能驗證能力:能夠利用 timeit 模組設計實驗,驗證理論複雜度與實際執行時間的一致性。
  7. 理解並能區分線性資料結構(堆疊、佇列、雙端佇列、列表)的邏輯特性。
  8. 能夠使用 Python 的基礎集合(如列表)實作自訂的堆疊、佇列與雙端佇列。
  9. 掌握堆疊在表示式處理(中序轉後序、後序求值)與佇列在系統模擬(印表機模擬)中的應用。
  10. 掌握遞迴核心三原則:能夠準確識別並撰寫包含基本情況、狀態演變與自呼叫的遞迴函數。

課程

Lesson