在第3版中,去掉了两章和一节的内容,新增加了三章以及两节的内容。如果单从目录来判断第3版中改动的范围,得出的结论很可能是改动不大。下面总结了第3版的主要变化:
• 新增了讨论van Emde Boas树和多线程算法的章节,并且将矩阵基础移至附录。
• 修订了递归式那一章的内容,更广泛地覆盖分治法,并且前两节介绍了应用分治法解决两个问题。4.2节介绍了用于矩阵乘法的Strassen算法,关于矩阵运算的内容已从本章移除。
• 移除两章很少讲授的内容:二项堆和排序网络。排序网络中的关键思想——0-1原理,在本版的思考题8-7中作为比较交换算法的0-1排序引理进行介绍。斐波那契堆的处理不再依赖二项堆。
• 修订了动态规划和贪心算法相关内容。与第2版中的装配线调度问题相比,本版用一个更有趣的问题——钢条切割来引入动态规划。而且,我们比在第2版中更强调助记性,并且引入子问题图这一概念来阐释动态规划算法的运行时间。在我们给出的贪心算法例子(活动选择问题)中,我们以更直接的方式给出贪心算法。
• 我们从二叉搜索树(包括红黑树)删除一个结点的方式,现在保证实际所删除的结点就是请求删除的结点(在前两版中,有些情况下某个其他结点可能被删除)。用这种新的方式删除结点,如果程序的其他部分保持指针指向树中的结点,那么终止时就不会错误地将指针指向已删去的结点。
• 流网络相关材料现在基于边上的全部流。这种方法比前两版中使用的净流更直观。
• 由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容比第2版中所占的篇幅更小。
• 修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。
• 修正了上一版中的一些错误。在网站上,这些错误大多数都已在第2版的勘误中给出,但是有些没有给出。
• 根据许多读者的要求,我们改变了书中伪代码的语法,现在用“=”表示赋值,用“==”表示检验相等,正如C、C++、Java和Python所用的。同样,我们不再使用关键字do和then而是使用“//”作为程序行末尾的注释符号。我们现在还使用点标记法表明对象属性。书中的伪代码仍是过程化的,而不是面向对象的。换句话说,我们只是简单地调用过程,将对象作为参数传递,而不是关于对象的运行方法。
• 新增100道练习和28道思考题,还更新并补充了参考文献。
• 最后,我们对书中的语句、段落和小节进行了一些调整,以使本书条理更清晰。
摘自《算法导论(第3版)》前言
《算法导论》第3版中所做的修改
|
第三版会有原版出来么?
期待~~~~
@何艳 贵社是不是没有该书第三版英文版的版权
英文原版总是死贵死贵的。
@何艳 请问什么什么时候出原版。原版要是打印出来,有3本书厚。一直很期待有原版。
@小菜星球 华章公司不会出版该书的英文版,第2版英文版是在高教社出版的,你或许可以问问 :-)
@凤凰游叔 有international edition,比较便宜。但也是很贵了。
> 我来回应