深入淺出算法競賽(圖解版)

段忠傑//顧業鳴 著

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

商品描述

本書的編寫是為了幫助讀者理解基本的算法思想,學會編寫高效的程序來解決問題。
全書共6章,
第1章是概述,簡要介紹了算法與算法競賽;
第2章是窮舉算法與貪心算法,介紹用計算機程序解決問題的最基本方法論;
第3章是隨機,介紹如何利用概率與期望優化算法的效率;
第4章是搜索,介紹如何用更靈活的方式遍歷每一種可行解;
第5章是動態規劃,通過狀態間的轉移,巧妙地規劃最優解;
第6章是分治,介紹如何將問題拆分為易於解決的小問題。
本書大多數例題是以算法競賽題目的形式給出的,因為該形式能夠保證問題描述的嚴謹性,
書中使用的編程語言也是算法競賽中最常用的C++語言。
同時,本書不拘泥於算法競賽,在第2章至第6章,
每一章的最後都有一段閱讀材料,介紹算法有趣的應用案例,從而幫助讀者拓寬思維。

目錄大綱

第1章歡迎來到算法的世界
1.1 算法是什麼
1.2 算法競賽是什麼
1.2.1 緊張刺激的算法競賽
1.2.2 C++——統治算法競賽的編程語言
1.3 算法的複雜度是什麼
1.3.1 從三個排序算法說起
1.3.2 低複雜度算法一定更快嗎
1.3.3 構建高效的算法
第2章細膩的“暴力”美學——窮舉算法與貪心算法
2.1 窮舉算法
2.1.1 素數判斷
2.1.2 關燈遊戲
2.2 從窮舉算法到貪心算法
2.2.1 買賣股票的最佳時機
2.2.2 物流站的選址(一)
2.3 貪心算法
2.3.1 物流站的選址(二)
2.3.2 回合製遊戲
2.3.3 快遞包裝
2.4 “暴力”的算法與精妙的結論
第3章萬變中的不變——隨機
3.1 隨機的方法
3.1.1 巧算圓周率——蒲豐投針實驗
3.1.2 迷宮的十字路口
3.1.3 大數據與小數據
3.2 隨機的時間複雜度
3.2.1 多米諾骨牌上的等差數列
3.2.2 小算的生活費
3.3 隨機的準確性
3.3.1 從字符串到數字——哈希算法
3.3.2 哈希算法的隱患
3.4 貪心+隨機——探索最優解
第4章A;的思維模式——搜索
4.1 深度優先搜索
4.1.1 零錢搭配
4.1.2 “油漆桶”與連通性
4.2 記憶化
4.3 在遊戲中製勝的AI
4.3.1 永遠的平局——井字棋
4.3.2 一起來解謎——數獨
4.3.3 速戰速決——拼圖
4.4 迭代加深
4.4.1 搜索的深度
4.4.2 加深加深再加深——掃雷
4.5 那些更複雜的AI——現代人工智能技術選講
第5章狀態間的奇妙轉移——動態規劃
5.1 初探動態規劃
5.1.1 拼圖遊戲——從搜索到動態規劃
5.1.2 物流倉庫——狀態的轉移
5.2 狀態的巧妙定義
5.2.1 股票投資計劃——不同的狀態和轉移
5.2.2 流浪貓的家——狀態壓縮與狀態剪枝
5.3 轉移方式的神奇優化
5.3.1 運輸計劃——在轉移中剪枝
5.3.2 會議安排——在決策中剪枝
5.4 經典的動態規划算法
5.4.1 路徑規劃——用動態規劃創造算法
5.4.2 矩陣乘積——用動態規劃優化算法
5.5 玩轉自然語言——動態規劃在文本處理中的應用
第6章大事化小、小事化了一分治
6.1 分治基本介紹
6.1.1 原理
6.1.2 分治和動態規劃的區別
6.2 數乘型分治
6.2.1 瘋狂的細胞分裂
6.2.2 簡單的乘法
6.3 矩陣乘法的分治
6.3.1 神秘數字
6.3.2 strassen快速矩陣乘法
6.4 線性結構問題的分治
6.4.1 自助餐廳(一)
6.4.2 自助餐廳(二)
6.5 樹形結構問題的分治
6.5.1 溝通成本
6.5.2 換根策略
6.6 再看路徑規劃——地圖上的分治
參考文獻