作者:Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein
7-111-18777-6
¥85.00
Introduction to Algorithms
对于正规的程序员或者计算机科学系的学生来说,新版《算法导论》(第2版)是一本不可多得的好书,它建立在第1版的基础上,并且能对算法学习提供权威性的指导。书中富有条理的论述和严格的数学证明,即使那些厌恶数学的人,都会感到易于接受。这些无疑也使本书成为了一本出类拔萃的教科书。而且,书中涉及到很多解决现实中广泛的计算问题的算法都是最佳的。
书中大量的实例与对算法正确性的数学证明都显示出本书对于学生来说是极好的教科书。但实际情况还远不止如此。作者对每一个算法的解释证明都十分准确严格而无可挑剔(书中关于基本数学内容的证明不但可以帮助读者理解每个算法,而且还能使有一定数学背景的人欣赏本书的全部成果);每个算法都用伪代码来描述,能很容易地通过任何一种计算机语言(包括C/C++和Java)来实现。这正是这本经典著作最具吸引力的地方。作者使用清晰的图示展示排序和数据结构(从基本链表到树)等算法的原理,这也是本书的另一亮点。即便你不精通数学,而只将书中的数学证明粗略浏览,也一定能从本书中受益匪浅。
本书是一本内容丰富而权威的算法专著,涉及许多用于解决复杂问题(包括动态编程技术、贪心算法和平摊分析)和图问题(用于如航班调度和装配线等问题)的高级算法。在这些例子中,作者均给出了涉及每个主题的最新研究成果以及解决方案。本书最后还包含了矩阵运算、线性规划、计算多项式以及著名的快速傅里叶变换等多种十分有用的算法。在NP完全问题(像旅行商问题)中,作者向我们阐明了,尽管不是所有的问题都有一个最终确定的结果和最好的答案,然而能得出可接受的近似解决方法的算法依然可以很好地解决我们遇到的各种现实问题。
贯穿本书始终的,是作者使用分子生物学(如人类基因组计划)、商业和工程领域的新鲜例子对算法进行深入细致的讨论。每部分的末尾,作者还介绍了与该部分相关的历史资料,而这些资料都是用于对算法的各个领域进行早期研究的。从总体上讲,作者成功地阐述了这一主旨思想:与硬件和软件一样,算法是一种“技术”,能帮助你编写出性能良好的程序。就像Knuth的《计算机程序设计艺术》第三卷一样,《算法导论》(第2版)为算法领域中的经典著作,汇集了该领域中最先进的研究成果。对任何一个经验丰富的程序开发者来说,不论选择何种编程语言,对真实世界中软件领域的扩大和性能的提高,本书所阐述的思想都是值得充分关注的。