第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 動態(tài)規(guī)劃策略與算法設計方法
2.9 圖搜索策略與算法設計方法
2.9.1 廣度優(yōu)先搜索策略
2.9.2 深度優(yōu)先搜索策略
2.9.3 隊列制導搜索策略
2.9.4 棧制導搜索策略
2.9.5 優(yōu)先隊列分支限界搜索策略
習題
第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 整數因子分割問題
習題