數據結構和算法無師自通
[美]科裏·奧爾索夫(Cory Althoff)
- 出版商: 人民郵電
- 出版日期: 2026-03-01
- 定價: $479
- 售價: $478
- 語言: 簡體中文
- 頁數: 182
- ISBN: 7115624550
- ISBN-13: 9787115624550
-
相關分類:
Algorithms-data-structures
- 此書翻譯自: The Self-Taught Programmer: The Definitive Guide to Programming Professionally
下單後立即進貨 (約2週~3週)
商品描述
本書是一本介紹算法和數據結構基礎知識的入門讀物。作者通過簡單易懂的語言和示例,幫助讀者建立堅實的算法和數據結構基礎,提高編程技能和解決問題的能力。本書包含兩部分內容。第Ⅰ部分主要介紹什麼是算法、遞歸、搜索算法、排序算法、字符串算法、數學等方面的知識。第Ⅱ部分主要介紹數據結構相關知識,如什麼是數據結構、數組、鏈表、棧、隊列、哈希表、二叉樹、二叉堆、圖等方面的知識。本書提供了大量的練習題和示例代碼,幫助讀者鞏固所學知識並提高編程能力。
本書適合了解Python基礎、對計算機科學感興趣或有相關要求求職意向的人閱讀。
作者簡介
Cory Althoff是一位作家、程序員和演講者。他以《Python編程無師自通》一書而聞名,該書已用七種語言出版,並引入了 "自學成才的程序員"(the self-taught programmer)這一術語。The Next Web將《Python編程無師自通》列為能幫助你成為更好的軟件工程師的十本書之一。超過20萬名開發者是他通過其受歡迎的Facebook群組、博客、通訊和Udemy課程創建的自學編程者社區的一部分。2019年,Cory在Pycon JP上發表了開幕主題演講。
目錄大綱
第Ⅰ部分 算法介紹
第 1 章 什麼是算法 3
1.1 分析算法 4
1.2 常數時間 8
1.3 對數時間 9
1.4 線性時間 9
1.5 對數線性時間 10
1.6 平方時間 11
1.7 立方時間 12
1.8 指數時間 13
1.9 最佳情況與最差情況的復雜度 14
1.10 空間復雜度 15
1.11 為什麼這些概念很重要 16
1.12 詞匯 16
1.13 挑戰 17
第 2 章 遞歸 19
2.1 何時使用遞歸 23
2.2 詞匯 23
2.3 挑戰 23
第 3 章 搜索算法 25
3.1 線性搜索 25
3.2 何時使用線性搜索 27
3.3 二分搜索 27
3.4 何時使用二分搜索 30
3.5 搜索字符 32
3.6 詞匯 34
3.7 挑戰 34
第 4 章 排序算法 35
4.1 冒泡排序 35
4.2 何時使用冒泡排序 39
4.3 插入排序 40
4.4 何時使用插入排序 43
4.5 歸並排序 44
4.6 何時使用歸並排序 50
4.7 Python 中的排序算法 51
4.8 詞匯 52
4.9 挑戰 53
第 5 章 字符串算法 55
5.1 異構詞檢測 55
5.2 回文詞檢測 56
5.3 最後一個數碼 57
5.4 凱撒密碼 58
5.5 詞匯 61
5.6 挑戰 61
第 6 章 數學 63
6.1 二進制 63
6.2 位運算符 66
6.3 FizzBuzz 69
6.4 最大公約數 71
6.5 歐幾裏得算法 74
6.6 質數 75
6.7 詞匯 76
6.8 挑戰 77
第 7 章 自學的激勵:瑪格麗特·漢密爾頓 79
第Ⅱ部分 數據結構
第 8 章 什麼是數據結構 83
8.1 詞匯 85
8.2 挑戰 85
第 9 章 數組 87
9.1 數組的性能 88
9.2 創建數組 90
9.3 移動零 91
9.4 組合兩個列表 94
9.5 尋找列表中的重復元素 94
9.6 求兩個列表的交集 97
9.7 詞匯 99
9.8 挑戰 99
第 10 章 鏈表 101
10.1 鏈表的性能 103
10.2 創建鏈表 104
10.3 在鏈表中搜索 106
10.4 從鏈表中刪除節點 107
10.5 反轉鏈表 108
10.6 尋找鏈表中的循環 110
10.7 詞匯 111
10.8 挑戰 111
第 11 章 棧 113
11.1 何時使用棧 114
11.2 創建棧 115
11.3 利用棧反轉字符串 119
11.4 最小棧 120
11.5 括號的棧 122
11.6 詞匯 124
11.7 挑戰 124
第 12 章 隊列 125
12.1 何時使用隊列 126
12.2 創建隊列 127
12.3 Python 內置的隊列類 131
12.4 用兩個棧實現隊列 132
12.5 詞匯 133
12.6 挑戰 134
第 13 章 哈希表 135
13.1 何時使用哈希表 137
13.2 字符串中的字符 138
13.3 兩數之和 140
13.4 詞匯 142
13.5 挑戰 142
第 14 章 二叉樹 143
14.1 何時使用樹 145
14.2 創建二叉樹 148
14.3 樹的寬度優先遍歷 150
14.4 其他樹遍歷方法 152
14.5 反轉二叉樹 154
14.6 詞匯 155
14.7 挑戰 156
第 15 章 二叉堆 157
15.1 何時使用堆 160
15.2 創建堆 160
15.3 連接繩子的最小成本 162
15.4 詞匯 164
15.5 挑戰 164
第 16 章 圖 165
16.1 何時使用圖 168
16.2 圖的創建 169
16.3 迪傑斯特拉算法 171
16.4 詞匯 176
16.5 挑戰 176
第 17 章 自學的激勵:埃隆·馬斯克 177
第 18 章 下一步 179
18.1 接下來做什麼 179
18.2 爬上自由職業的梯子 179
18.3 如何獲得面試機會 180
18.4 如何準備技術面試 181
18.5 補充資源 181
18.6 最後的話 182

