《趣題學算法》是2018年12月人民郵電出版社出版的圖書,作者是徐子珊。
基本介紹
- 中文名:趣題學算法
- 作者:徐子珊
- 出版社:人民郵電出版社
- 出版時間:2018年12月
- 頁數:399 頁
- 定價:69 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115442871
內容簡介,圖書目錄,
內容簡介
全書共分10章。第0章講解了算法的概念及體例說明。第 1~7章分別就計數問題、信息查找問題、組合最佳化問題、圖中搜尋問題和數論問題展開,討論了算法的構思和設計,詳盡介紹了解決這些問題的漸增策略、分治策略、回溯策略、動態規劃和貪婪策略、廣度優先搜尋策略、深度優先搜尋策略等。第8章提供了10個讓讀者自解的計算問題,讓讀者有機會小試牛刀。第9章用書中給出的各問題的C++解決方案作為例子,討論了C++語言的強大編程功能。書中一共收錄了92個饒有興趣的計算問題,每個問題(包括第8章留給讀者自解的題目)都給出了完整的C++解決方案。
《趣題學算法》適於作為程式設計師的參考書,高校各專業學生學習“數據結構”“算法設計分析”“程式設計”等課程的擴展讀物,也可以作為上述課程的實驗或課程設計的材料,還可以作為準備參加國內或國際程式設計賽事的讀者的賽前訓練材料。
圖書目錄
第0章 從這裡開始 1
0.1 App程式與算法 2
0.2 計算問題 2
問題0-1 計算逆序數 3
0.3 算法的偽代碼描述 4
0.4 算法的正確性 6
0.5 算法分析 7
0.6 算法運行時間的漸近表示 9
問題0-2 行動電話 10
0.7 算法的程式實現 13
0.8 從這裡開始 15
第 1章 計數問題 16
1.1 累積計數法 17
問題1-1 騎士的金幣 17
問題1-2 撲克牌魔術 19
問題1-3 能量轉換 22
問題1-4 美麗的花園 24
1.2 簡單的數學計算 26
問題1-5 小小度刷禮品 26
問題1-6 找到牛妞 29
問題1-7 糟糕的公交調度 31
1.3 加法原理和乘法原理 34
問題1-8 冒泡排序 35
1.4 圖的性質 38
問題1-9 聚會遊戲 39
1.5 置換與輪換 41
問題1-10 牛妞排隊 42
第 2章 數據集合與信息查找 45
2.1 集合及其字典操作 46
問題2-1 開源項目 46
問題2-2 王子的難題 53
問題2-3 度度熊就是要第 一個出場 56
問題2-4 尋找複製人 62
問題2-5 瘋狂搜尋 64
2.2 文本串的查找 66
問題2-6 Pandora星球上的計算機病毒 69
2.3 全序集序列的排序 71
問題2-7 DNA排序 73
問題2-8 度度熊的禮物 76
問題2-9 通信系統 78
2.4 集合的並、交、差運算 80
問題2-10 計算機調度 81
第3章 現實模擬 85
3.1 簡單模擬 86
問題3-1 對稱排序 86
問題3-2 邊界 89
3.2 棧及其套用 92
問題3-3 Web導航 93
問題3-4 周期序列 95
3.3 佇列及其套用 99
問題3-5 穩定婚姻問題 99
問題3-6 **好的農場 102
3.4 基於二叉堆的優先佇列及其套用 105
問題3-7 David購物 107
問題3-8 記憶體分配 110
3.5 二叉樹及其套用 115
問題3-9 後綴表達式 116
問題3-10 符號導數 119
第4章 組合最佳化問題 125
4.1 組合問題及其回溯算法 126
3-色問題 126
N-後問題 127
0-1 背包問題 128
4.2 回溯算法框架 129
問題4-1 探險圖 129
問題4-2 Jill的騎行路徑 134
4.3 排列樹問題 138
問題4-3 八元拼圖 138
問題4-4 一步致勝 142
問題4-5 訂單 145
4.4 子集樹問題 147
問題4-6 命題邏輯 147
問題4-7 整除性 151
4.5 用回溯算法解組合最佳化問題 154
問題4-8 盜賊 154
問題4-9 牛妞玩牌 156
問題4-10 三角形遊戲 159
問題4-11 輪子上的度度熊 162
4.6 加速計算組合最佳化問題 167
問題4-12 三角形N-後問題 167
第5章 動態規劃與貪婪策略 172
5.1 動態規劃 173
問題5-1 數字三角形 173
問題5-2 形式語言 176
5.2 0-1背包問題的動態規划算法 179
問題5-3 溫馨旅程 180
5.3 **長公共子序列問題的動態規划算法 182
問題5-4 射鵰英雄 184
問題5-5 人類基因功能 186
問題5-6 清潔機器人 189
5.4 貪婪策略 193
問題5-7 牛妞的**佳排列 193
問題5-8 渡河 197
5.5 無向帶權圖的**小生成樹 199
問題5-9 網路設計 202
問題5-10 網頁聚類 204
5.6 有向帶權圖單源**短路徑 206
問題5-11 牛妞聚會 208
問題5-12 **短路 210
第6章 圖的搜尋算法 218
6.1 廣度優先搜尋 219
6.2 無向圖的連通分支 221
問題6-1 女孩與男孩 221
問題6-2 衛星照片 224
6.3 圖中頂點間**短路徑 227
問題6-3 騎士移動 228
問題6-4 蜜蜂種群 230
6.4 深度優先搜尋 233
6.5 有向無圈圖的拓撲排序 235
問題6-5 考慮所有的光碟 236
問題6-6 循序 239
6.6 無向圖的關節點和橋 242
問題6-7 網路保護 245
問題6-8 夫妻大盜 248
6.7 流網路的**大流問題 250
問題6-9 網路頻寬 252
問題6-10 電網 255
問題6-11 選課 258
6.8 歐拉路徑問題 261
問題6-12 觀光旅遊 262
問題6-13 Johnny的新車 267
問題6-14 放牛娃 269
第7章 數論問題 272
7.1 整數的進位制 273
問題7-1 牛牛計數 273
問題7-2 數制轉換 275
7.2 10進制非負大整數的表示與算術運算 277
問題7-3 除法 281
7.3 整數的模運算 282
問題7-4 Maya曆法 283
問題7-5 Euclid遊戲 285
7.4 **大公約數 287
問題7-6 紐約大劫案 289
問題7-7 青蛙的約會 292
7.5 素數 295
問題7-8 素數分割 296
問題7-9 哥德巴赫猜想 298
問題7-10 困惑的密碼員 299
7.6 算術基本定理 301
問題7-11 密碼學中的冪 302
問題7-12 RSA因數分解 304
第8章 動手做 307
問題8-1 測謊 308
問題8-2 偽圖形識別 309
問題8-3 反轉數相加 311
問題8-4 直角多邊形 312
問題8-5 二叉搜尋堆 313
問題8-6 物以類聚 314
問題8-7 旅程 315
問題8-8 午餐 316
問題8-9 網路攻擊 317
問題8-10 素數個數 318
第9章 C++程式設計 320
9.1 C++的程式結構 321
9.1.1 源檔案的組成 322
9.1.2 語句與關鍵字 323
9.1.3 數據與表達式 325
9.1.4 指針類型和引用類型 328
9.2 C++的面向對象程式設計技術 331
9.2.1 類的封裝 331
9.2.2 類的繼承 338
9.2.3 多態 349
9.3 C++的模板技術 358
9.3.1 函式模板 358
9.3.2 類模板 360
9.4 C++的標準模板庫——STL 366
9.4.1 容器類模板 367
9.4.2 算法模板和仿函式 383
9.4.3 類模板組合 386
9.5 數據的輸入輸出 391
9.5.1 檔案輸入輸出流 391
9.5.2 串輸入輸出流 392
9.5.3 流運算符的重載 396