第1章 從零開始學算法 1
1.1 算法基礎知識 21.1.1 什么是算法 2
1.1.2 算法時間復雜度 2
1.1.3 算法空間復雜度 5
1.1.4 算法優(yōu)劣比較 6
1.2 計算機中如何描述算法 61.2.1 自然語言 7
1.2.2 流程圖 7
1.2.3 偽代碼 8
1.2.4 挑戰(zhàn):這個月有多少天 8
1.3 Python概述 101.3.1 Python簡介 10
1.3.2 環(huán)境搭建 11
1.3.3 開發(fā)工具介紹 15
1.3.4 單元測試 22
1.4 總結 252
第2章 數據結構 27
2.1 數組 282.1.1 定義 28
2.1.2 挑戰(zhàn)1:海盜船生存大考驗 30
2.1.3 挑戰(zhàn)2:必勝的游戲 32
2.2 鏈表 372.2.1 定義 37
2.2.2 挑戰(zhàn):國王的繼承人 43
2.3 隊列 452.3.1 定義 45
2.3.2 挑戰(zhàn):維修報警器 48
2.4 棧 502.4.1 定義 51
2.4.2 挑戰(zhàn)1:和機器人做朋友 52
2.4.3 挑戰(zhàn)2:讓機器人幫你檢查作業(yè) 54
2.5 哈希表 562.5.1 定義 56
2.5.2 挑戰(zhàn):基因研究 62
2.6 樹 642.6.1 定義 65
2.6.2 二叉樹 66
2.6.3 二叉查找樹 71
2.6.4 挑戰(zhàn):畫一棵好看的“樹” 75
2.7 圖 782.7.1 定義 79
2.7.2 圖的表示 79
2.7.3 圖的遍歷 82
2.7.4 挑戰(zhàn):“一筆畫完”小游戲 86
2.8 總結 913
第3章 數 學 92
3.1 進制轉換 93
3.2 基本概念 933.2.1 十進制 93
3.2.2 二進制 93
3.2.3 八進制和十六進制 93
3.2.4 進制轉換 94
3.2.5 挑戰(zhàn):網絡攻擊 98
3.3 數學運算 1003.3.1 內置函數 100
3.3.2 Math庫模塊 101
3.3.3 排列組合 102
3.3.4 矩陣運算 102