目錄
第1章 演算法概述
1.1 什麼是演算法
1.2 為什麼學習演算法
1.3 如何表示演算法
1.4 如何評價演算法
1.4.1 演算法評價指標
1.4.2 演算法的漸進時間複雜度
1.4.3 演算法時間複雜度分析舉例
1.4.4 大O表示法的若干特點
1.4.5 演算法空間複雜度分析方法
1.5 演算法、程序、數據、數據結構、軟體之間的關係
1.6 演算法、電腦、人三者之間的關係
習題
第2章 經典演算法設計策略與方法
2.1 演算法設計策略知識導圖
2.2 演算法設計七步曲
2.3 迭代策略與演算法設計方法
2.3.1 順序遞推演算法策略與設計方法
2.3.2 倒序遞推演算法策略與設計方法
2.4 蠻力策略與演算法設計方法
2.5 分治策略與演算法設計方法
2.6 遞歸策略與演算法設計方法
2.7 貪心策略與演算法設計方法
2.8 動態規劃策略與演算法設計方法
2.9 圖搜索策略與演算法設計方法
2.9.1 廣度優先搜索策略
2.9.2 深度優先搜索策略
2.9.3 隊列制導搜索策略
2.9.4 棧制導搜索策略
2.9.5 優先隊列分支限界搜索策略
習題
第3章 概率演算法設計策略與方法
3.1 概率演算法概述
3.2 數值概率演算法
3.2.1 數值概率演算法的基本思想
3.2.2 用隨機投點法計算圓周率
3.2.3 用隨機投點法計算定積分
3.3 蒙特卡羅演算法
3.3.1 蒙特卡羅演算法的基本思想
3.3.2 主元素存在性判定問題
3.3.3 素數判定問題
3.4 舍伍德演算法
3.4.1 舍伍德演算法的基本思想
3.4.2 線性時間選擇問題
3.4.3 搜索有序表
3.5 拉斯維加斯演算法
3.5.1 拉斯維加斯演算法的基本思想
3.5.2 n皇后問題
3.5.3 整數因子分割問題
習題
第4章 計算複雜性理論初步
4.1 NP完全性
4.1.1 P和NP
4.1.2 NPC問題
4.1.3 常見的NPC問題
4.1.4 NPC問題證明
4.2 NP難與NP難問題
習題
第5章 近似演算法設計策略與方法
5.1 近似演算法策略設計與近似演算法的性能
5.1.1 近似演算法策略設計思想
5.1.2 近似演算法的性能評價
5.2 頂點覆蓋問題的近似演算法
5.3 旅行商問題近似演算法
5.4 最小集合覆蓋問題的近似演算法
習題
第6章 智能演算法設計策略與方法
6.1 啟髮式搜索演算法
6.1.1 爬山演算法
6.1.2 模擬退火演算法
6.2 群體智能演算法
6.2.1 遺傳演算法
6.2.2 蟻群演算法
6.2.3 粒子群優化演算法
6.3 神經網路演算法
6.3.1 深度學習演算法
6.3.2 強化學習演算法
習題
第7章 演算法策略綜合應用與實踐
7.1 求解0-1背包問題
7.2 求解最短路徑問題的演算法綜合應用與實踐