首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

算法导论 第3版 更动部分

2012-09-04 
算法导论 第3版 改动部分第三版改动内容: (翻译自 Introduction to algorithms 3rd Edition ,? page xvii-

算法导论 第3版 改动部分

第三版改动内容: (翻译自 Introduction to algorithms 3rd Edition ,? page xvii--xviii?)

?

??????从第二版到第三版有哪些改动?就像第二版和第一版之间巨大的改动一样。至于我们说的第二版的改动,这要取决于你怎么看待,本书的改动要么不是很多,要么不是一点点。

??????快速浏览内容表,可以看到第二版中大部分章节出现在第三版中。我们去掉了两章以及一节。但是我们又增加了新的三章,除此之外还新增两节。

????? 我们保留了前两版中的混合编排组织。而不是仅仅依据问题领域或仅仅根据技术来组织章节,本书两种元素都包括。包含基于技术的章节:分治法(divide and conquer),动态编程,贪心算法,平摊分析(amortized analysis),NP-完全性和近似算法; 但在下面的章节中也包括完整的各部分:排序,数据结构,动态集以及图问题算法。我们发现虽然你需要知道怎么应用设计技术来分析算法,问题本身很少对你宣称哪一个技术是解决他们最合适(amenable)的。

???? 下面是第三版中重大改动的总结:

增加了 van Emde Boas?树 和 多线程算法两章,并且拆分了矩阵基础材料到附录章节。修改了递归(recurrence)章节以便涵盖更宽范围的分治法技术,前两节中应用分治法解决两个问题,本章的第二节提出的矩阵乘法的Steassen's 算法,我们已经移到了矩阵操作一章。移去了很少教到的两章:二项式堆和排序网络。在排序网络一章中,一个关键的概念是 0-1 准则,在本版中出现在“问题 8-7” 中作为比较交换算法的 0-1排序定理,斐波纳契堆不在作为一个雏形而依赖二项式堆。 修改了关于动态编程和贪婪算法的表述,现在动态编程导向了更有趣的问题,砍棒问题(rod cutting),而不再是第二版中的集装线排定(assembly-line scheduling)问题,比在第二版中更强调综合(memoization)更多一点,并且介绍了子问题图的概念来理解动态编程算法的运行时间。在贪心算法的开放例子中,活动选择问题,弄清贪心算法比在第二版中更直接一些。现在在二叉搜索树(包括红黑树)中删除一个节点的方式,确保了需要删除的节点确实被删除了。在前面的两个版本中,在某些情况下,一些其他节点将被删除,其内容将会移动传递到删除程序中的节点。通过现在新的方式删除节点,如果其他的程序组件维护着树中节点的指针,将不会再错误的以被删除的节点的失效指针结束。流网络中的材料现在在边缘处完全的基于流。这种方式比在前两版中更加直观。随着矩阵基础和Strassen’s算法的材料移到其他章节,矩阵操作一章比在第二版中更加精简。修改了Knuth-Morris-Pratt字符匹配算法表述更正了几处错误。大部分已经发表在了我们的网站第二版错误纠正处,少数几处没有(在网站中贴出)。根据需求,修改了以往伪代码中的语法,现在使用“=”来表明赋值,使用“==”来测试相等,就像C,C++,Java以及Python中一样。同样的,去除了关键字 do 以及 then 并且吸收 “//”作为注释行符号。现在也使用“.”点符号来标明对象属性,伪代码保持了面向过程设计,而不是面向对象。换句话说,通过简单的调用过程函数,传递对象作为参数,而不是运行对象中的方法。增加了100个新练习以及28个新问题,也更新了许多文献条目以及增加了几个新的。最后,整体上对书进行了语句,段落,以及章节的重写,以使写作的更加清晰和生动。

热点排行