第1章 算法概述
1.1 算法的概念
1.1.1 算法的定义和特性
1.1.2 求解问题的基本过程
1.1.3 算法设计示例——计算最大公约数
1.2 算法设计与分析任务
1.3 算法分析准则
1.4 算法分析基础
1.4.1 常用数学术语
1.4.2 对数与指数
1.4.3 数学证明法
1.5 算法复杂性分析方法
1.5.1 复杂度函数
1.5.2 最好、最坏和平均情况
1.5.3 渐进分析
1.5.4 阶的证明方法
小结
习题
第2章 递归与分治策略
2.1 递归的概念
2.2 具有递归特性的问题
2.3 递归过程的设计与实现
2.4 递归算法分析
2.4.1 替换法
2.4.2 递归树法
2.4.3 主方法
2.5 分治法的基本思想
2.6 分治法的适用条件
2.7 分治法的基本步骤
2.8 分治法典型示例
2.8.1 个数中求出最大/最小值
2.8.2 快速排序
2.8.3 大整数乘法
2.8.4 折半查找
2.8.5 矩阵乘法
小结
习题
第3章 动态规划
3.1 动态规划基础
3.1.1 动态规划的基本思想
3.1.2 动态规划的基本要素
3.1.3 动态规划的基本步骤
3.1.4 动态规划示例——组合数问题
3.2 线性动态规划——合唱队形问题
3.3 区域动态规划——矩阵连乘问题(最佳次序)
3.4 背包动态规划——0-1背包问题
3.5 树形动态规划——最优二叉搜索树
小结
习题
第4章 贪婪算法
4.1 贪婪算法基础
4.1.1 贪婪算法的基本思想
4.1.2 贪婪算法的基本要素
4.1.3 贪婪算法适合的问题
4.1.4 贪婪算法的基本步骤
4.1.5 贪婪算法示例——背包问题
4.2 汽车加油问题
4.3 最优服务次序问题
4.4 区间相交问题
4.5 单源最短路径
小结
习题
……
第5章 回溯法
第6章 分支限界法
第7章 随机算法
第8章 NP完全性理论
第9章 神经网络智能算法
附录 试题
参考文献