《圖解算法——使用Python(第2版)》是2022年清華大學出版社出版的圖書,作者是吳燦銘、胡昭民。
基本介紹
- 中文名:圖解算法——使用Python(第2版)
- 作者:吳燦銘、胡昭民
- 出版社:清華大學出版社
- 出版時間:2022年2月1日
- 定價:69 元
- ISBN:9787302598671
內容簡介,圖書目錄,
內容簡介
本書綜合講述算法及其數據結構,內容淺顯易懂、邏輯嚴謹,範例豐富、易於學習和掌握,力求兼顧教師教學和學生自學。 全書從算法糊鍵格的基本概念開始講解,接著介紹各個經典的算法,包括分治法、遞歸法、貪心法、動態規劃法、疊代法、枚舉法、回溯法等;隨後講述核心的數據結構,即數組、鍊表、堆疊、佇列、樹結構、圖結構、哈希表等;最後展開闡述不同數據結構上整芝寒想實現的算法,包括排序算法、查找算法、數組和鍊表相關算法、信息安全基礎算法、堆疊和佇列相關算法、樹結構相關算法、圖結構相關算法、人工智慧基礎算法。 本書為每個算法及其數據結構提供演算的詳細圖解,並為每個經典的算法提供Python語言編寫的完整範例程式(包含完整的原始碼)。每個範例程式都經過了測試和調試,可以直接敬蒸在標準的Python語言環境中運行。在每章末尾安排大量的習題(包括各類考試的例題),並在附想頁樂錄中提供解答,以供讀者自測學習效果。
圖書目錄
第1章 進入算法世界 1
1.1 運算思維簡介 2
1.1.1 分解 3
1.1.2 模式識別 3
1.1.3 模式概括與抽象 4
1.1.4 算法 4
1.2 計算思維的腦力大賽 5
1.2.1 三分球比賽燈記錄器 5
1.2.2 圖像字元串編碼 6
1.2.3 計算機繪圖指令實踐 7
1.2.4 炸彈超人遊戲 7
1.3 生活中到處都是算法 8
1.3.1 算法的條件 9
1.3.2 時間複雜度 11
1.4 課後習題 13
第2章 經典算法介紹 14
2.1 分治法 14
2.2 遞歸法 16
2.3 貪心法 18
2.4 動態規劃法 19
2.5 疊代法 20
2.6 枚舉法 23
2.7 回溯法 26
2.8 課後習題 31
第3章 數據結構簡介 32
3.1 認識數據結構 33
3.2 常見的數據結虹整束構 35
3.2.1 數組 36
3.2.2 鍊表 38
3.2.3 堆疊 39
3.2.4 佇列 39
3.3 樹結構簡介 40
3.3.1 樹的基本概念 41
3.3.2 二叉樹 42
3.4 圖論簡介 43
3.5 哈希表 45
3.6 課後習題 46
第4章 排序算法 47
4.1 認識排序 48
4.2 冒泡排序法 48
4.3 選擇排序法 51
4.4 插入排序法 53
4.5 希爾排序法格朵汽 55
4.6 合併排序法 57
4.7 快速排序法 60
4.8 基數排序法 62
4.9 課後習題 65
第5章 查找算法 66
5.1 順序查找法 67
5.2 二分查找法 69
5.3 插值查找法 71
5.4 斐波那契查找法 72
5.5 課後習題 76
第6章 數組與鍊表相關算法 77
6.1 矩陣算法與深度學習 77
6.1.1 矩陣相加 79
6.1.2 矩陣阿享習元相乘 80
6.1.3 轉置矩陣 81
6.1.4 稀疏矩陣 82
6.2 數組與多項式 84
6.3 單向鍊表算法 86
6.3.1 單向鍊表的連線功能 87
6.3.2 單向鍊表插入節點的算法 89
6.3.3 單向鍊表刪除節點的算法 94
6.3.4 對單向鍊表進行反轉的算法 97
6.4 課後習題 100
第7章 信息安全基礎算法 101
7.1 數據加密 102
7.1.1 對稱密鑰加密系統 102
7.1.2 非對稱密鑰加密系統與RSA
算法 103
7.1.3 認證 104
7.1.4 數字簽名 104
7.2 哈希算法 105
7.2.1 除留餘數法 105
7.2.2 平方取中法 106
7.2.3 摺疊法 107
7.2.4 數字分析法 108
7.3 碰撞與溢出處理 109
7.3.1 線性探測法 109
7.3.2 平方探測法 111
7.3.3 再哈希法 111
7.3.4 鍊表 112
7.4 課後習題 117
第8章 堆疊與佇列相關算法 119
8.1 以數組來實現堆疊 119
8.2 以鍊表來實現堆疊 122
8.3 漢諾塔問題的求解算法 124
8.4 八皇后問題的求解算法 129
8.5 用數組來實現佇列 132
8.6 用鍊表來實現佇列 135
8.7 雙向佇列 138
8.8 優先佇列 141
8.9 課後習題 142
第9章 樹結構相關算法 143
9.1 用數組來實現二叉樹 144
9.2 用鍊表來實現二叉樹 146
9.3 二叉樹遍歷 148
9.4 二叉查找樹 152
9.5 二叉樹節點的插入 154
9.6 二叉樹節點的刪除 156
9.7 堆積樹排序法 158
9.8 擴充二叉樹 162
9.9 哈夫曼樹 163
9.10 平衡樹 164
9.11 博弈樹 166
9.12 課後習題 167
第10章 圖結構相關算法 169
10.1 圖的簡介 169
10.1.1 歐拉環與歐拉鏈 170
10.1.2 無向圖及其重要術語 171
10.1.3 有向圖及其重要術語 172
10.2 圖的數據表示法 173
10.2.1 鄰接矩陣法 173
10.2.2 鄰接鍊表法 176
10.2.3 鄰接複合鍊表法 177
10.2.4 索引表格法 178
10.3 圖的遍歷 179
10.3.1 深度優先遍曆法 179
10.3.2 廣度優先遍曆法 182
10.4 生成樹 185
10.4.1 Prim算法 186
10.4.2 Kruskal算法 187
10.5 圖的最短路徑法 191
10.5.1 Dijkstra算法與A*算法 191
10.5.2 Floyd算法 197
10.6 課後習題 199
第11章 人工智慧基礎算法 202
11.1 機器學習簡介 203
11.1.1 監督式學習 204
11.1.2 半監督式學習 205
11.1.3 無監督式學習與K均值
聚類 205
11.1.4 強化學習 207
11.2 認識深度學習 209
11.2.1 人工神經網路 210
11.2.2 卷積神經網路 212
11.2.3 循環神經網路 217
11.3 課後習題 220
附錄 課後習題與解答 221
5.1 順序查找法 67
5.2 二分查找法 69
5.3 插值查找法 71
5.4 斐波那契查找法 72
5.5 課後習題 76
第6章 數組與鍊表相關算法 77
6.1 矩陣算法與深度學習 77
6.1.1 矩陣相加 79
6.1.2 矩陣相乘 80
6.1.3 轉置矩陣 81
6.1.4 稀疏矩陣 82
6.2 數組與多項式 84
6.3 單向鍊表算法 86
6.3.1 單向鍊表的連線功能 87
6.3.2 單向鍊表插入節點的算法 89
6.3.3 單向鍊表刪除節點的算法 94
6.3.4 對單向鍊表進行反轉的算法 97
6.4 課後習題 100
第7章 信息安全基礎算法 101
7.1 數據加密 102
7.1.1 對稱密鑰加密系統 102
7.1.2 非對稱密鑰加密系統與RSA
算法 103
7.1.3 認證 104
7.1.4 數字簽名 104
7.2 哈希算法 105
7.2.1 除留餘數法 105
7.2.2 平方取中法 106
7.2.3 摺疊法 107
7.2.4 數字分析法 108
7.3 碰撞與溢出處理 109
7.3.1 線性探測法 109
7.3.2 平方探測法 111
7.3.3 再哈希法 111
7.3.4 鍊表 112
7.4 課後習題 117
第8章 堆疊與佇列相關算法 119
8.1 以數組來實現堆疊 119
8.2 以鍊表來實現堆疊 122
8.3 漢諾塔問題的求解算法 124
8.4 八皇后問題的求解算法 129
8.5 用數組來實現佇列 132
8.6 用鍊表來實現佇列 135
8.7 雙向佇列 138
8.8 優先佇列 141
8.9 課後習題 142
第9章 樹結構相關算法 143
9.1 用數組來實現二叉樹 144
9.2 用鍊表來實現二叉樹 146
9.3 二叉樹遍歷 148
9.4 二叉查找樹 152
9.5 二叉樹節點的插入 154
9.6 二叉樹節點的刪除 156
9.7 堆積樹排序法 158
9.8 擴充二叉樹 162
9.9 哈夫曼樹 163
9.10 平衡樹 164
9.11 博弈樹 166
9.12 課後習題 167
第10章 圖結構相關算法 169
10.1 圖的簡介 169
10.1.1 歐拉環與歐拉鏈 170
10.1.2 無向圖及其重要術語 171
10.1.3 有向圖及其重要術語 172
10.2 圖的數據表示法 173
10.2.1 鄰接矩陣法 173
10.2.2 鄰接鍊表法 176
10.2.3 鄰接複合鍊表法 177
10.2.4 索引表格法 178
10.3 圖的遍歷 179
10.3.1 深度優先遍曆法 179
10.3.2 廣度優先遍曆法 182
10.4 生成樹 185
10.4.1 Prim算法 186
10.4.2 Kruskal算法 187
10.5 圖的最短路徑法 191
10.5.1 Dijkstra算法與A*算法 191
10.5.2 Floyd算法 197
10.6 課後習題 199
第11章 人工智慧基礎算法 202
11.1 機器學習簡介 203
11.1.1 監督式學習 204
11.1.2 半監督式學習 205
11.1.3 無監督式學習與K均值
聚類 205
11.1.4 強化學習 207
11.2 認識深度學習 209
11.2.1 人工神經網路 210
11.2.2 卷積神經網路 212
11.2.3 循環神經網路 217
11.3 課後習題 220
附錄 課後習題與解答 221