趣題學算法 趣题学算法

徐子珊

  • 出版商: 人民郵電
  • 出版日期: 2017-04-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • 頁數: 399
  • 裝訂: 平裝
  • ISBN: 7115442878
  • ISBN-13: 9787115442871

立即出貨 (庫存=1)

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

商品描述

書中內容基於C++
全書共分10章。第0章講解了算法的概念及體例說明。第1~7章分別就計數問題、信息查找問題、組合優化問題、圖中搜索問題和數論問題展開,討論了算法的構思和設計,詳盡介紹瞭解決這些問題的漸增策略、分治策略、回溯策略、動態規劃和貪婪策略、廣度優先搜索策略、深度優先搜索策略等。第8章提供了10個讓讀者自解的計算問題,讓讀者有機會小試牛刀。第9章用書中給出的各問題的C++解決方案作為例子,討論了C++語言的強大編程功能。書中一共收錄了92個饒有興趣的計算問題,每個問題(包括第8章留給讀者自解的題目)都給出了完整的C++解決方案。
《趣題學算法》適於作為程序員的參考書,高校各專業學生學習“數據結構”“算法設計分析”“程序設計”等課程的擴展讀物,也可以作為上述課程的實驗或課程設計的材料,還可以作為準備參加國內或國際程序設計賽事的讀者的賽前訓練材料。

目錄大綱

第0章從這裡開始1 

第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有向無圈圖的拓撲排序23 5 
問題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