内容简介 · · · · · ·
在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。
全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。
第3版的主要变化:
新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。
修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。
移除两章很少讲授的内容:二项堆和排序网络。
修订了动态规划和贪心算法相关内容。
流网络相关材料现在基于边上的全部流。
由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。
修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。
新增100道练习和28道思考题,还更新并补充了参考文献。
目录 · · · · · ·
出版者的话
译者序
前言
第一部分 基础知识
第1章 算法在计算中的作用 3
1.1 算法 3
1.2 作为一种技术的算法 6
思考题 8
本章注记 8
第2章 算法基础 9
2.1 插入排序 9
2.2 分析算法 13
2.3 设计算法 16
2.3.1 分治法 16
2.3.2 分析分治算法 20
思考题 22
本章注记 24
第3章 函数的增长 25
3.1 渐近记号 25
3.2 标准记号与常用函数 30
思考题 35
本章注记 36
第4章 分治策略 37
4.1 最大子数组问题 38
4.2 矩阵乘法的Strassen算法 43
4.3 用代入法求解递归式 47
4.4 用递归树方法求解递归式 50
4.5 用主方法求解递归式 53
4.6 证明主定理 55
4.6.1 对b的幂证明主定理 56
4.6.2 向下取整和向上取整 58
思考题 60
本章注记 62