産品特色
編輯推薦
本書的特色是實現瞭入門知識、實例演示、範例演練、技術解惑、綜閤實戰5大部分內容的融閤,讓讀者看得懂、用得上、學得會。
一本書的容量,講解瞭入門類、範例類和項目實戰類三類圖書的內容。
豐富的配套資源 學習更高效
320個實例,更多的實踐演練機會
753分鍾視頻講解,降低學習難度
5個綜閤案例,項目實戰演練
74個技術解惑,破解學習難點
“技術講解”→範例演練”→“技術解惑”貫穿全書,全麵掌握算法應用
技術講解:通過320個實例,循序漸進地講解瞭算法應用的各個知識點。
範例演練: 5個綜閤實例,使讀者具有應用算法解決實際項目的能力。
技術解惑:把容易混淆的概念單獨講解和剖析,幫助讀者繞過學習中的陷阱。
QQ群+網站論壇實現教學互動,形成互幫互學的朋友圈
網站論壇:讀者答疑/學習輔導/PPT資源下載讀者QQ群:疑惑快速解答/和作者直接交流
內容簡介
算法是程序的靈魂,隻有掌握瞭算法,纔能輕鬆地駕馭程序開發。算法能夠告訴開發者在麵對一個項目功能時用什麼思路去實現,有瞭這個思路後,編程工作隻需遵循這個思路去實現即可。本書循序漸進、由淺入深地詳細講解瞭算法實現的核心技術,並通過具體實例的實現過程演練瞭各個知識點的具體使用流程。
全書共20章,其中,第1章講解瞭算法為什麼是程序的靈魂;第2~8章分彆講解瞭常用的算法,如綫性錶、隊列和棧,樹,圖,查找算法,內部排序算法,外部排序算法等知識,這些內容都是算法技術核心的語法知識;第9~15章分彆講解瞭經典的數據結構問題、解決數學問題、解決趣味問題、解決圖像問題、算法的經典問題、解決奧賽問題、常見算法應用實踐等高級編程技術,這些內容是算法技術的重點和難點;第16~20章分彆通過5個綜閤實例的實現過程,介紹瞭算法在綜閤開發項目中的使用流程和發揮的作用。全書內容以“技術解惑”和“實踐應用”貫穿全書,引領讀者全麵掌握算法的核心技術。
本書不但適閤算法研究和學習的初學者,也適閤有一定算法基礎的讀者,還可以作為大中專院校相關專業師生的學習用書和培訓學校的教材。
作者簡介
張玲玲,計算機碩士,傑齣程序員和算法專傢,在算法研究和應用上很有心得,曾經開發過眾多的遊戲應用、係統軟件的。業餘期間,曾經在國內主流期刊中發錶過多篇算法領域的傑齣論文。
目錄
第1章 算法是程序的靈魂 1
(視頻總計18分鍾,技術解惑1個)
1.1 算法的基礎 2
1.1.1 算法的特徵 2
1.1.2 何為算法 2
1.2 計算機中的算法 3
1.2.1 認識計算機中的算法 3
1.2.2 為什麼說算法是程序的
靈魂 4
1.3 在計算機中錶示算法的方法 4
1.3.1 用流程圖來錶示算法 4
1.3.2 用N-S流程圖來錶示算法 6
1.3.3 用計算機語言錶示算法 6
1.4 技術解惑 6
第2章 常用的算法思想 8
(視頻總計51分鍾,實例15個,技術解惑8個)
2.1 枚舉算法思想 9
2.1.1 枚舉算法基礎 9
2.1.2 實戰演練—百錢買百雞 9
2.1.3 實戰演練—解決
“填寫運算符”問題 10
2.2 遞推算法思想 12
2.2.1 遞推算法基礎 12
2.2.2 實踐演練—解決
“斐波那契數列”問題 12
2.2.3 實踐演練—解決
“銀行存款”問題 14
2.3 遞歸算法思想 15
2.3.1 遞歸算法基礎 15
2.3.2 實踐演練—解決“漢諾塔”
問題 16
2.3.3 實踐演練—解決“階乘”
問題 18
2.4 分治算法思想 19
2.4.1 分治算法基礎 19
2.4.2 實踐演練—解決
“大數相乘”問題 19
2.4.3 實踐演練—歐洲冠軍杯
比賽日程安排 21
2.5 貪心算法思想 23
2.5.1 貪心算法基礎 23
2.5.2 實踐演練—解決“裝箱”
問題 24
2.5.3 實踐演練—解決
“找零方案”問題 26
2.6 試探法算法思想 27
2.6.1 試探法算法基礎 27
2.6.2 實踐演練—解決
“八皇後”問題 28
2.6.3 實踐演練—體彩29選
7彩票組閤 29
2.7 迭代算法 30
2.7.1 迭代算法基礎 30
2.7.2 實踐演練—解決
“求平方根”問題 31
2.8 模擬算法思想 32
2.8.1 模擬算法的思路 32
2.8.2 實踐演練—解決
“猜數字遊戲”問題 32
2.8.3 實踐演練—解決
“擲骰子遊戲”問題 33
2.9 技術解惑 34
2.9.1 衡量算法的標準是什麼 34
2.9.2 在什麼時候選擇使用
枚舉法 36
2.9.3 遞推和遞歸有什麼差異 36
2.9.4 總結分治法能解決什麼
類型的問題 37
2.9.5 分治算法的機理是什麼 37
2.9.6 為什麼說貪婪算法並不是最
優解決問題的方案 37
2.9.7 迴溯算法會影響算法
效率嗎 38
2.9.8 遞歸算法與迭代算法
有什麼區彆 38
第3章 綫性錶、隊列和棧 39
(視頻總計35分鍾,實例9個,技術解惑5個)
3.1 綫性錶詳解 40
3.1.1 綫性錶的特性 40
3.1.2 順序錶操作 41
3.1.3 實踐演練—順序錶操作
函數 44
3.1.4 實踐演練—操作順
序錶 45
3.1.5 鏈錶操作 48
3.1.6 實踐演練—定義鏈錶操作
函數 51
3.1.7 實踐演練—操作鏈錶 52
3.2 先進先齣的隊列詳解 53
3.2.1 什麼是隊列 54
3.2.2 鏈隊列和循環隊列 55
3.2.3 隊列的基本操作 55
3.2.4 隊列的鏈式存儲 55
3.2.5 實踐演練—完整的順序
隊列的操作 56
3.2.6 實踐演練—完整的循環
隊列的操作 57
3.2.7 實踐演練—實現一個
排號程序 59
3.3 後進先齣棧 60
3.3.1 什麼是棧 61
3.3.2 棧的基本分類 61
3.3.3 實踐演練—棧操作
函數 63
3.3.4 實踐演練—測試棧
操作 64
3.4 技術解惑 65
3.4.1 綫性錶插入操作的時間
復雜度是多少 65
3.4.2 綫性錶刪除操作的時間
復雜度是多少 65
3.4.3 綫性錶按值查找操作的
時間復雜度是多少 66
3.4.4 綫性錶鏈接存儲(單鏈錶)
操作的11種算法是什麼 66
3.4.5 堆和棧的區彆是什麼 70
第4章 樹 71
(視頻總計35分鍾,實例9個,技術解惑5個)
4.1 樹基礎 72
4.1.1 什麼是樹 72
4.1.2 樹的相關概念 72
4.2 二叉樹詳解 73
4.2.1 二叉樹的定義 73
4.2.2 二叉樹的性質 74
4.2.3 二叉樹存儲 75
4.2.4 操作二叉樹 77
4.2.5 遍曆二叉樹 79
4.2.6 綫索二叉樹 82
4.2.7 實踐演練—測試二叉樹
操作函數 85
4.2.8 實踐演練—C++的二叉樹
操作 87
4.2.9 實踐演練—實現各種綫索
二叉樹的操作 89
4.2.10 實踐演練—測試綫索
二叉樹的操作 91
4.3 霍夫曼樹 92
4.3.1 霍夫曼樹基礎 93
4.3.2 實踐演練—實現各種
霍夫曼樹操作 95
4.3.3 實踐演練—測試霍夫曼樹
的操作 97
4.3.4 總結霍夫曼編碼的算法
實現 98
4.4 技術解惑 100
4.4.1 樹和二叉樹的差彆是
什麼 100
4.4.2 二叉樹和鏈錶的效率誰
更牛 100
4.4.3 如何打印二叉樹中的
所有路徑 100
第5章 圖 101
(視頻總計40分鍾,實例8個,技術解惑4個)
5.1 圖的起源 102
5.2 圖的相關概念 103
5.3 存儲結構 105
5.3.1 錶示頂點之間相鄰關係的
鄰接矩陣 106
5.3.2 鄰接錶 107
5.3.3 十字鏈錶 108
5.3.4 實踐演練—創建一個鄰接
矩陣 109
5.3.5 實踐演練—測試霍夫曼樹
的操作 111
5.4 圖的遍曆 112
5.4.1 深度優先搜索 113
5.4.2 廣度優先搜索 114
5.4.3 實踐演練—求一條包含
圖中所有頂點的簡單
路徑 117
5.4.4 實踐演練—求距v0的
各頂點中最短路徑長度
最長的一個頂點 118
5.4.5 實踐演練—實現圖的
遍曆操作方法 118
5.4.6 實踐演練—實現圖的
遍曆操作 120
5.5 圖的連通性 120
5.5.1 無嚮圖連通分量 121
5.5.2 最小生成樹 121
5.5.3 實踐演練—創建一個最小
生成樹 123
5.5.4 實踐演練—調用最小生成
樹函數實現操作 123
5.5.5 關鍵路徑 124
5.6 尋求最短路徑 128
5.6.1 求某一頂點到其他各頂點的
最短路徑 128
5.6.2 任意一對頂點間的
最短路 129
5.6.3 實踐演練—創建最短路徑
算法函數 131
5.6.4 實踐演練—調用最短路徑
算法實現測試 132
5.7 技術解惑 132
5.7.1 幾種最短路徑算法的
比較 132
5.7.2 鄰接矩陣與鄰接錶的
對比 134
5.7.3 如何錶示有嚮圖的十字鏈錶
存儲 135
5.7.4 比較深度優先算法和廣度
優先算法 135
第6章 查找算法 136
(視頻總計37分鍾,實例8個,技術解惑3個)
6.1 幾個相關概念 137
6.2 基於綫性錶的查找法 137
6.2.1 順序查找法 137
6.2.2 實踐演練—實現順序查找
算法 138
6.2.3 實踐演練—改進的順序
查找算法 139
6.2.4 摺半查找法 140
6.2.5 實踐演練—使用摺半查找
算法查找數據 140
6.2.6 實踐演練—查找10個已
排好序的數 141
6.2.7 分塊查找法 142
6.3 基於樹的查找法 143
6.3.1 二叉排序樹 143
6.3.2 實踐演練—將數據插入到
二叉樹節點中 147
6.3.3 實踐演練—刪除二叉樹中
一個節點 148
6.3.4 平衡二叉排序樹 150
6.4 哈希法 155
6.4.1 哈希法的基本思想 155
6.4.2 構造哈希函數 155
6.4.3 處理衝突 156
6.4.4 哈希錶的查找過程 157
6.5 索引查找 158
6.5.1 索引查找的過程 158
6.5.2 實踐演練—索引查找法
查找指定的關鍵字 158
6.5.3 實踐演練—實現索引查找並插入一個新關鍵字 160
6.6 技術解惑 161
6.6.1 分析查找算法的性能 161
6.6.2 演示對二叉樹的完整
操作 162
6.6.3 分析哈希法的性能 164
第7章 內部排序算法 166
(視頻總計39分鍾,實例10個,技術解惑6個)
7.1 排序基礎 167
7.1.1 排序的目的和過程 167
7.1.2 內部排序與外部排序 167
7.1.3 穩定排序與不穩定排序 167
7.2 插入排序算法 168
7.2.1 直接插入排序 168
7.2.2 實踐演練—編寫直接插入
排序算法 169
7.2.3 實踐演練—插入排序算法
對數據進行排序處理 169
7.2.4 摺半插入排序 170
7.2.5 錶插入排序 170
7.2.6 希爾排序 171
7.2.7 實踐演練—使用希爾排序
算法對數據進行排序
處理 172
7.2.8 實踐演練—使用希爾排序
處理數組 173
7.3 交換類排序法 174
7.3.1 冒泡排序(相鄰比序法) 174
7.3.2 快速排序 174
7.3.3 實踐演練—用冒泡排序
算法實現對數據的排序
處理 175
7.3.4 實踐演練—使用快速排序
算法 177
7.4 選擇類排序法 178
7.4.1 直接選擇排序 178
7.4.2 樹形選擇排序 179
7.4.3 堆排序 179
7.4.4 實踐演練—直接選擇排序
算法對數據的排序處理 181
7.4.5 實踐演練—堆排序算法
實現排序處理 182
7.5 歸並排序 183
7.5.1 歸並排序思想 183
7.5.2 兩路歸並算法的思路 184
7.5.3 實現歸並排序 185
7.5.4 實踐演練—用歸並算法
實現排序處理 186
7.5.5 實踐演練—使用歸並排序
算法求逆序對 188
7.6 基數排序 189
7.6.1 多關鍵字排序 189
7.6.2 鏈式基數排序 189
7.7 技術解惑 192
7.7.1 插入排序算法的描述是
什麼 192
7.7.2 希爾排序和插入排序誰
更快 192
7.7.3 快速排序的時間耗費是
多少 192
7.7.4 堆排序與直接選擇排序的
區彆是什麼 193
7.7.5 歸並排序的效率如何,應該
如何選擇 193
7.7.6 綜閤比較各種排序方法 193
第8章 外部排序算法 195
(視頻總計32分鍾)
8.1 外部信息概覽 196
8.1.1 磁帶存儲器 196
8.1.2 磁盤存儲器 197
8.2 外部排序的基本方法 198
8.2.1 磁盤排序 198
8.2.2 磁帶排序 201
8.3 文件的基礎知識 204
8.4 文件組織方式 205
8.4.1 順序文件 205
8.4.2 索引文件 205
8.4.3 ISAM文件 206
8.4.4 VSAM文件 207
8.4.5 散列文件 209
8.4.6 多關鍵字文件 209
第9章 經典的數據結構問題 211
(視頻總計31分鍾,實例5個)
9.1 約瑟夫環 212
9.2 大整數運算 214
9.2.1 數組實現大整數運算 214
9.2.2 鏈錶實現大整數運算 220
9.3 計算機進製轉換 224
9.4 中序錶達式轉換為後序錶達式 227
第10章 解決數學問題 231
(視頻總計36分鍾,實例12個)
10.1 最大公約數和最小公倍數 232
10.2 哥德巴赫猜想 233
10.3 完全數 235
10.4 親密數 237
10.5 自守數 238
10.6 方程求解 239
10.6.1 用高斯消元法解方程組 239
10.6.2 用二分法解非綫性
方程 242
10.6.3 用牛頓迭代法解非綫性
方程 243
10.7 矩陣運算 244
10.8 實現n×n整數方陣的轉置 246
10.9 一元多項式運算 247
10.9.1 一元多項式的加法運算 247
10.9.2 一元多項式的減法
運算 250
第11章 解決趣味問題 257
(視頻總計43分鍾,實例16個)
11.1 歌星大奬賽 258
11.2 藉書方案 258
11.3 打魚還是曬網 259
11.4 捕魚和分魚 260
11.5 齣售金魚 261
11.6 平分七筐魚 262
11.7 繩子的長度和井深 263
11.8 雞兔同籠 264
11.9 漢諾塔 265
11.9.1 遞歸法 266
11.9.2 非遞歸法 267
11.10 馬踏棋盤 268
11.10.1 使用循環查找法 269
11.10.2 使用遞歸法 271
11.10.3 使用棧方法 272
11.11 三色球問題 275
11.12 新郎和新娘問題 276
11.13 計算年齡 278
第12章 解決圖像問題 279
(視頻總計31分鍾,實例6個)
12.1 “八皇後”問題 280
12.1.1 使用遞歸法 280
12.1.2 使用循環法 282
12.2 生命遊戲 284
12.3 黑白棋問題 287
12.4 “騎士迷宮”問題 293
12.5 找齣迷宮問題中的所有路徑 298
第13章 算法的經典問題 300
(視頻總計36分鍾,實例8個)
13.1 存錢利息最大化 301
13.2 背包問題 303
13.2.1 使用動態規劃法 303
13.2.2 使用遞歸法 307
13.3 農夫過河 309
13.4 三色旗問題 311
13.5 取石子 313
13.6 停車場管理 316
13.7 約瑟夫生死者遊戲 323
第14章 解決奧賽問題 325
(視頻總計55分鍾,實例7個)
14.1 孿生素數問題 326
14.2 百錢買百雞問題 327
14.3 馬剋思手稿中的數學題 328
14.4 正整數分解質因數 329
14.5 水仙花數 330
14.6 素數 330
14.6.1 求1000以內的所有
素數 331
14.6.2 求1000以內的迴文
素數 332
14.6.3 求1000以內的平方迴
文數 333
14.
算法學習與應用從入門到精通 epub pdf mobi txt 電子書 下載 2024
算法學習與應用從入門到精通 下載 epub mobi pdf txt 電子書