第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 整数因子分割问题
习题