算法设计与分析(第2版) / 21世纪大学本科计算机专业系列教材
作者: 屈婉玲、刘田等
出版时间:2016年2月
出版社:清华大学出版社
- 清华大学出版社
- 9787302424505
- 2-1
- 35113
- 0044177866-9
- 平装
- 16开
- 2016年2月
- 工学
- 计算机科学与技术
- TP301.6
- 计算机
- 本科
与本书配套有学习指导与习题解析用书、PPT电子教案,MOOC视频教学资源也将近期完成。
本书适合作为大学计算机科学与技术、软件工程、信息安全、信息与计算科学等专业本科生和研究生的教学用书,也可以作为从事实际问题求解的算法设计与分析工作的科技人员的参考书。
第1章 基础知识
1.1 有关算法的基本概念
1.2 算法的伪码描述
1.3 算法的数学基础
1.3.1 函数的渐近的界
1.3.2 求和的方法
1.3.3 递推方程求解方法
习题1
第2章 分治策略
2.1 分治策略的基本思想
2.1.1 两个熟悉的例子
2.1.2 分治算法的一般性描述
2.2 分治算法的分析技术
2.3 改进分治算法的途径
2.3.1 通过代数变换减少子问题个数
2.3.2 利用预处理减少递归内部的计算量
2.4 典型实例
2.4.1 快速排序算法
2.4.2 选择问题
2.4.3 n-1次多项式在全体2n次方根上的求值
习题2
第3章 动态规划
3.1 动态规划的设计思想
3.1.1 多起点、多终点的最短路径问题
3.1.2 使用动态规划技术的必要条件
3.2 动态规划算法的设计要素
3.2.1 子问题的划分和递推方程
3.2.2 动态规划算法的递归实现
3.2.3 动态规划算法的迭代实现
3.2.4 一个简单实例的计算过程
3.3 动态规划算法的典型应用
3.3.1 投资问题
3.3.2 背包问题
3.3.3 最长公共子序列
3.3.4 图像压缩
3.3.5 最大子段和
3.3.6 最优二分检索树
3.3.7 生物信息学中的动态规划算法
习题3
第4章 贪心法
4.1 贪心法的设计思想
4.2 关于贪心法的正确性证明
4.3 对贪心法得不到最优解情况的处理
4.4 贪心法的典型应用
4.4.1 最优前缀码
4.4.2 最小生成树
4.4.3 单源最短路径
习题4
第5章 回溯与分支限界
5.1 回溯算法的基本思想和适用条件
5.1.1 几个典型的例子
5.1.2 回溯算法的适用条件
5.2 回溯算法的设计步骤
5.2.1 回溯算法的递归实现和迭代实现
5.2.2 几个典型的例子
5.3 回溯算法的效率估计和改进途径
5.4 分支限界
5.4.1 背包问题
5.4.2 最大团问题
5.4.3 货郎问题
5.4.4 圆排列问题
5.4.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 最优性检验
6.3.3 基变换
6.3.4 单纯形表
6.3.5 人工变量和两阶段法
6.3.6 单纯形法的有限终止
6.4 对偶性
6.4.1 对偶线性规划
6.4.2 对偶单纯形法
6.5 整数线性规划的分支限界算法
习题6
第7章 网络流算法
7.1 最大流问题
7.1.1 网络流及其性质
7.1.2 Ford-Fulkerson算法
7.1.3 Dinic有效算法
7.2 最小费用流
7.2.1 Floyd算法
7.2.2 最小费用流的负回路算法
7.2.3 最小费用流的最短路径算法
7.3 运输问题
7.3.1 确定初始调运方案
7.3.2 改进调运方案
7.3.3 表上作业法
7.4 二部图匹配
7.4.1 二部图的最大匹配
7.4.2 赋权二部图的匹配
习题7
第8章 算法分析与问题的计算复杂度
8.1 平凡下界
8.2 直接计数求解该问题所需要的最少运算
8.3 决策树
8.4 检索算法的时间复杂度分析
8.5 排序算法的时间复杂度分析
8.5.1 冒泡排序算法
8.5.2 堆排序算法
8.5.3 排序算法的决策树与算法类时间复杂度的下界
8.6 选择算法的时间复杂度分析
8.6.1 找最大和最小问题
8.6.2 找第二大问题
8.6.3 找中位数的问题
8.7 通过归约确认问题计算复杂度的下界
习题8
第9章 NP完全性
9.1 P类与NP类
9.1.1 易解的问题与难解的问题
9.1.2 判定问题
9.1.3 NP类
9.2 多项式时间变换与NP完全性
9.2.1 多项式时间变换
9.2.2 NP完全性及其性质
9.2.3 Cook-Levin定理——第一个NP完全问题
9.3 几个NP完全问题
9.3.1 最大可满足性与三元可满足性
9.3.2 顶点覆盖、团与独立集
9.3.3 哈密顿回路与货郎问题
9.3.4 恰好覆盖
9.3.5 子集和、背包、装箱与双机调度
9.3.6 整数线性规划
习题9
第10章 近似算法
10.1 近似算法及其近似比
10.2 多机调度问题
10.2.1 贪心的近似算法
10.2.2 改进的贪心近似算法
10.3 货郎问题
10.3.1 最邻近法
10.3.2 最小生成树法
10.3.3 最小权匹配法
10.4 背包问题
10.4.1 一个简单的贪心算法
10.4.2 多项式时间近似方案
10.4.3 伪多项式时间算法与完全多项式时间近似方案
习题10
第11章 随机算法
11.1 概率论预备知识
11.2 对随机快速排序算法的分析
11.3 随机算法的分类及其局限性
11.3.1 拉斯维加斯型随机算法
11.3.2 蒙特卡洛型随机算法
11.3.3 随机算法的局限性
11.4 素数检验和多项式恒等检验
11.4.1 素数检验
11.4.2 多项式恒等检验
11.5 随机游动算法
11.5.1 有限马氏链及其表示
11.5.2 求解二元布尔可满足性问题的随机游动算法
习题11
第12章 处理难解问题的策略
12.1 对问题施加限制
12.1.1 二元可满足性问题
12.1.2 霍恩公式可满足性问题
12.2 固定参数算法
12.3 改进指数时间算法
12.4 启发式方法
12.5 平均情形的复杂性
12.6 难解算例生成
12.6.1 相变现象与难解性
12.6.2 隐藏解的难解算例
12.7 基于统计物理的消息传递算法
12.7.1 消息传递算法与回溯法、局部搜索算法的比较
12.7.2 用消息传递算法求解3SAT问题
12.8 量子算法简介
12.8.1 量子比特
12.8.2 正交测量
12.8.3 量子门
12.8.4 一个量子算法
习题12
参考文献