《算法设计技巧与分析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(沙特)M.H.Alsuwaiyel著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121298349
  • 页数:318 页
图书介绍:本书是国际著名算法专家李德财教授主编的系列丛书“Lecture Notes Series on Computing”中的一本。本书涵盖了绝大多数算法设计中的一般技术,在表达每一种技术时,阐述它的应用背景,注意用与其他技术比较的方法说明它的特征,并提供大量相应实际问题的例子。全书分七部分19章,从算法设计和算法分析的基本概念和方法入手,先后介绍了递归技术、分治、动态规划、贪心算法、图的遍历等技术,对NP完全问题进行了基本但清楚的讨论。

第一部分 基本概念和算法导引 1

第1章 算法分析基本概念 2

1.1 引言 2

1.2 历史背景 2

1.3 二分搜索 3

1.4 合并两个已排序的表 6

1.5 选择排序 7

1.6 插入排序 8

1.7 自底向上合并排序 9

1.8 时间复杂性 12

1.9 空间复杂性 19

1.10 最优算法 20

1.11 如何估计算法运行时间 21

1.12 最坏情况和平均情况的分析 26

1.13 平摊分析 29

1.14 输入大小和问题实例 31

1.15 练习 32

1.16 参考注释 38

第2章 数学预备知识 39

2.1 集合、关系和函数 39

2.2 证明方法 41

2.3 对数 44

2.4 底函数和顶函数 45

2.5 阶乘和二项式系数 45

2.6 鸽巢原理 48

2.7 和式 48

2.8 递推关系 52

2.9 练习 63

第3章 数据结构 67

3.1 引言 67

3.2 链表 67

3.3 图 68

3.4 树 69

3.5 根树 70

3.6 二叉树 71

3.7 练习 72

3.8 参考注释 73

第4章 堆和不相交集数据结构 74

4.1 引言 74

4.2 堆 74

4.3 不相交集数据结构 80

4.4 练习 85

4.5 参考注释 88

第二部分 基于递归的技术 89

第5章 归纳法 90

5.1 引言 90

5.2 两个简单的例子 90

5.3 基数排序 92

5.4 整数幂 93

5.5 多项式求值(Horner规则) 94

5.6 生成排列 95

5.7 寻找多数元素 98

5.8 练习 99

5.9 参考注释 101

第6章 分治 102

6.1 引言 102

6.2 二分搜索 103

6.3 合并排序 105

6.4 分治范式 107

6.5 寻找中项和第k小元素 109

6.6 快速排序 112

6.7 大整数乘法 118

6.8 矩阵乘法 119

6.9 最近点对问题 121

6.10 练习 124

6.11 参考注释 128

第7章 动态规划 129

7.1 引言 129

7.2 最长公共子序列问题 130

7.3 矩阵链相乘 132

7.4 动态规划范式 136

7.5 所有点对的最短路径问题 136

7.6 背包问题 138

7.7 练习 140

7.8 参考注释 144

第三部分 最先割技术 145

第8章 贪心算法 146

8.1 引言 146

8.2 最短路径问题 146

8.3 最小耗费生成树(Kruskal算法) 151

8.4 最小耗费生成树(Prim算法) 153

8.5 文件压缩 157

8.6 练习 159

8.7 参考注释 161

第9章 图的遍历 162

9.1 引言 162

9.2 深度优先搜索 162

9.3 深度优先搜索的应用 165

9.4 广度优先搜索 169

9.5 广度优先搜索的应用 170

9.6 练习 170

9.7 参考注释 172

第四部分 问题的复杂性 173

第10章 NP完全问题 174

10.1 引言 174

10.2 P类 176

10.3 NP类 176

10.4 NP完全问题 177

10.5 co-NP类 182

10.6 NPI类 183

10.7 四种类之间的关系 184

10.8 练习 184

10.9 参考注释 186

第11章 计算复杂性引论 187

11.1 引言 187

11.2 计算模型:图灵机 187

11.3 k带图灵机和时间复杂性 187

11.4 离线图灵机和空间复杂性 189

11.5 带压缩和线性增速 191

11.6 复杂性类之间的关系 191

11.7 归约 196

11.8 完全性 198

11.9 多项式时间层次 203

11.10 练习 205

11.11 参考注释 208

第12章 下界 209

12.1 引言 209

12.2 平凡下界 209

12.3 决策树模型 209

12.4 代数决策树模型 211

12.5 线性时间归约 213

12.6 练习 214

12.7 参考注释 216

第五部分 克服困难性 217

第13章 回溯法 218

13.1 引言 218

13.2 3着色问题 218

13.3 8皇后问题 221

13.4 一般回溯方法 223

13.5 分支限界法 225

13.6 练习 227

13.7 参考注释 228

第14章 随机算法 229

14.1 引言 229

14.2 Las Vegas和Monte Carlo算法 229

14.3 随机化快速排序 230

14.4 随机化的选择算法 231

14.5 测试串的相等性 232

14.6 模式匹配 234

14.7 随机取样 235

14.8 素数性测试 237

14.9 练习 241

14.10 参考注释 242

第15章 近似算法 244

15.1 引言 244

15.2 基本定义 244

15.3 差界 245

15.4 相对性能界 246

15.5 多项式近似方案 250

15.6 完全多项式近似方案 253

15.7 练习 255

15.8 参考注释 257

第六部分 域指定问题的迭代改进 259

第16章 网络流 260

16.1 引言 260

16.2 预备知识 260

16.3 Ford-Fulkerson方法 262

16.4 最大容量增值 263

16.5 最短路径增值 264

16.6 Dimc算法 266

16.7 MPM算法 269

16.8 练习 270

16.9 参考注释 271

第17章 匹配 272

17.1 引言 272

17.2 预备知识 272

17.3 网络流方法 274

17.4 二分图的匈牙利树方法 274

17.5 一般图中的最大匹配 276

17.6 二分图的O(n2.5)算法 281

17.7 练习 284

17.8 参考注释 286

第七部分 计算几何技术 287

第18章 几何扫描 288

18.1 引言 288

18.2 几何预备知识 289

18.3 计算线段的交点 290

18.4 凸包问题 292

18.5 计算点集的直径 295

18.6 练习 297

18.7 参考注释 299

第19章 Voronoi图解 300

19.1 引言 300

19.2 最近点Voronoi图解 300

19.3 Voronoi图解的应用 304

19.4 最远点Voronoi图解 306

19.5 最远点Voronoi图解的应用 308

19.6 练习 309

19.7 参考注释 310

参考文献 311