明解 Python 算法與數據結構

[日]柴田望洋

  • 出版商: 人民郵電
  • 出版日期: 2023-03-01
  • 售價: $599
  • 貴賓價: 9.5$569
  • 語言: 簡體中文
  • 頁數: 323
  • ISBN: 7115606544
  • ISBN-13: 9787115606549
  • 相關分類: Python程式語言
  • 立即出貨 (庫存=1)

  • 明解 Python 算法與數據結構-preview-1
  • 明解 Python 算法與數據結構-preview-2
明解 Python 算法與數據結構-preview-1

買這商品的人也買了...

商品描述

本書圖文並茂、示例豐富,結合136段代碼和213幅圖表,直觀易懂地介紹了算法與數據結構的基礎知識,包括數組、查找、棧和隊列、遞歸算法、排序、字符串查找、線性列表、樹結構和二分查找樹等。本書並非單純地對算法與數據結構進行介紹,而是致力於讓讀者掌握編寫實用程序的技術。為此,本書提供的示例代碼都是實際可運行的程序,理解這些示例程序之後,相信讀者的Python編程能力也會有很大的提升。本書各章節末設置有練習題,並在書末給出了答案,據此讀者可檢測自己對知識的掌握情況,加深理解。

作者簡介

柴田望洋(作者)

日本福冈工业大学信息工程学院副教授。在IT界家喻户晓,编写了一系列富有影响力的计算机教材和参考书,如《明解C语言》《明解C语言:中级篇》《明解C++》等。本书荣获日本工学教育协会作品奖。

目錄大綱

第 1章 基本算法 1

1-1 算法 2

求三個值中的最大值 2

條件判斷和分支 9

流程圖符號 11

1-2 循環 14

求1和n之間所有整數之和 14

二值排序和二值交換 16

循環過程中的條件判斷(其一) 18

循環過程中的條件判斷(其二) 20

循環過程中的條件判斷(其三) 21

讀取正數 23

邊長和麵積均為整數的矩形 25

跳過循環和遍歷多個範圍 27

結構化程序設計 29

多重循環 29

章末問題 35

第 2章 數據結構和數組 37

2-1 數據結構和數組 38

數組的必要性 38

列表和元組 39

通過索引表達式訪問 41

通過切片表達式訪問 42

數據結構 45

2-2 數組 48

求數組中元素的最大值 48

求數組中元素最大值的函數的實現 49

註釋和類型提示 50

構建可復用模塊 51

模塊測試 51

反轉數組中元素的順序 55

進制轉換 58

質數枚舉 64

章末問題 72

第3章 查找 75

3-1 查找算法 76

查找和關鍵字 76

數組查找 76

3-2 線性查找 78

線性查找 78

哨兵法 82

3-3 二分查找 84

二分查找 84

復雜度 88

3-4 散列法 92

對有序數組進行操作 92

散列法 92

散列沖突 93

拉鏈法 93

開放地址法 102

章末問題 109

第4章 棧和隊列 113

4-1 棧 114

棧 114

棧的實現 114

4-2 隊列 125

隊列 125

使用數組實現簡單隊列 125

使用環形緩沖區實現隊列 126

章末問題 138

第5章 遞歸算法 141

5-1 遞歸的基礎知識 142

遞歸 142

階乘值 142

輾轉相除法 145

5-2 遞歸算法的分析 147

遞歸算法的分析 147

遞歸算法的非遞歸寫法 149

5-3 漢諾塔問題 152

漢諾塔問題 152

5-4 八皇後問題 156

八皇後問題 156

擺放皇後 156

分支操作 162

定界操作和分支定界法 163

解決八皇後問題的程序 165

章末問題 167

第 6章 排序 169

6-1 排序 170

排序 170

6-2 直接交換排序 172

直接交換排序(冒泡排序) 172

雞尾酒排序(雙向冒泡排序) 179

6-3 直接選擇排序 182

直接選擇排序 182

6-4 直接插入排序 184

直接插入排序 184

6-5 希爾排序 188

直接插入排序的特點 188

希爾排序 188

6-6 快速排序 194

快速排序簡介 194

分組過程 195

快速排序 197

非遞歸快速排序 200

樞軸的選擇 205

時間復雜度 207

6-7 歸並排序 210

有序數組的歸並 210

歸並排序 212

6-8 堆排序 216

堆 216

堆排序 217

刪除根節點後重建堆 217

堆排序的擴展 219

數組堆化 221

堆排序的時間復雜度 224

6-9 計數排序 225

計數排序 225

章末問題 231

第 7章 字符串查找 235

7-1 暴力匹配算法 236

字符串查找 236

暴力匹配算法(直接匹配算法) 236

7-2 KMP算法 241

KMP 算法 241

7-3 Boyer-Moore算法 245

Boyer-Moore 算法 245

章末問題 249

第 8章 線性表 251

8-1 什麽是線性表 252

線性表 252

線性表的實現 252

8-2 單鏈表 254

通過指針實現單鏈表 254

在程序中使用單鏈表 266

8-3 通過游標實現單鏈表 269

通過游標實現單鏈表 269

數組中的空元素 273

自由列表 274

在程序中使用數組游標版的單鏈表 276

8-4 雙向循環鏈表 279

循環鏈表 279

雙鏈表 279

雙向循環鏈表 280

雙向循環鏈表的實現 280

在程序中使用雙向循環鏈表 291

章末問題 294

第 9章 樹結構和二叉查找樹 297

9-1 樹結構 298

樹 298

有序樹和無序樹 299

有序樹的查找 299

9-2 二叉樹和二叉查找樹 302

二叉樹 302

完全二叉樹 302

二叉查找樹 303

二叉查找樹的實現 304

在程序中使用二叉查找樹 314

章末問題 317

章末問題答案 322

參考文獻 324

致謝 325