返回課程
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 出版公司各位員工(特別是吉姆·萊西和湯姆·薩姆納)愉快的合作。最後,特別感謝我們兩人的妻子珍·米勒與布倫達·拉努姆,她們的愛與支持使本書終於成形。
學習目標
- 理解電腦科學、演算法與程式設計之間的關係,並掌握抽象資料類型 (ADT) 與資訊隱藏的概念。
- 熟練運用 Python 的內建集合資料類型(列表、元組、集合、字典)及控制結構(迴圈、分支、例外處理)。
- 掌握 Python 面向物件程式設計的核心:包括類別的定義、建構方法、運算子重載(如分數加法)、歐幾里得演算法應用,以及深淺相等的差異。
- 演算法多方案對比:能夠解釋異序詞檢測的四種方案(計數、排序、暴力、計數)及其對應的時間複雜度。
- Python 容器效能量化:掌握 Python 列表 (List) 與字典 (Dict) 核心操作的大 O 效率,並能區分
pop()與pop(i)的效能差異。 - 性能驗證能力:能夠利用
timeit模組設計實驗,驗證理論複雜度與實際執行時間的一致性。 - 理解並能區分線性資料結構(堆疊、佇列、雙端佇列、列表)的邏輯特性。
- 能夠使用 Python 的基礎集合(如列表)實作自訂的堆疊、佇列與雙端佇列。
- 掌握堆疊在表示式處理(中序轉後序、後序求值)與佇列在系統模擬(印表機模擬)中的應用。
- 掌握遞迴核心三原則:能夠準確識別並撰寫包含基本情況、狀態演變與自呼叫的遞迴函數。