在我们学校,一年一开的算法课由数学系与计算机系的教授轮流教学,教材便是Levitin的这本算法设计与分析基础(当然是英文版)。在学期末的时候,教授会被要求对课程设计本身提出些建议。数学系教授的建议非常明确:请换一本教材!是的,对于做理论出身研究方向为Operations Research的数学系教授而言,Levitin这本书的理论体系实在太糟糕了,topic组织零散,有跳跃性而无渐进性,缺乏许多必要的严格证明,并且有多处似是对其他诸如《算法导论》中经典例子的简写版。
在多如牛毛的算法神级著作中,Levitin的这个版本顶多算是有特色,确实难算经典。Levitin版对许多问题的解释并不清楚,一方面是其英语语言组织本身就有些难读拗口,不如Weiss或者Cormen等人的著作好读,另一方面可能限于篇幅,教材很少比较系统地渐进式的介绍一些算法与概念,而更多的是以尽可能简略扼要的篇幅试图概括他们,导致了理解上的困难。章节的编排顺序,相对于其他同类经典也是比较“非主流”的。算法技术被作为划分章节的标志,而许多数据结构的内容则被零散的穿插在各章节中作为对特定算法技术的应用。
举一个例子就可以反映上述种种问题。比如Disjoint Subsets和Union Find算法那节,教材放在了Greedy Technique一章中并且让其作为Kruskal算法的应用出现。其所使用的主要解释方式和例子其实是照搬了Cormen算法导论中的相关内容(然而Cormen中可是专门作为Advanced Data Strucutures中的一整章出现的),连示例图都是一样的,可不同于Cormen中详细的由浅入深的讲解,Levitin近乎填鸭式的把相关结论一股脑给了出来,却用短短的几句话把Cormen中的解释“高度概括”了一番。初学此章节,十分的晦涩且前后文似毫无连贯性,思维跳跃之大令我颇为摸不着头脑。直到仔细去研究了Cormen算法导论中的对应章节才对此数据结构的原理恍然大悟,同时悟到的是原来此节是Levitin对该相关内容过于概括的“简写”。
这也是我对此书只能给出三颗星的原因,内容很多,篇幅却受限,导致直观上阅读起来是非常吃力的,至少我感觉是这样。
相较于数学系教师的表态:“I hate this book”, 计算机系的教授却对本教材偏爱有加。这也是我接下来想夸奖它的地方。在实用性上,本教材所涵盖的内容是很多同类经典所无法相比的。如前所述,此教材对于经典算法topic的包罗不可谓不细。相较于其他教材画上大量篇幅进行严格的数学推导以提升了教材的理论高度,Levitin的书更像是带你领略了算法世界的各个角落,用算法来解决各种各样有趣的和经典的puzzle。事实上,如果你选学算法课,是以锻炼思维并且找工作砍面试为目的的话,此书应为首选。书中的大量实例(包括课后习题)根本就是经典的technical job interview问题的集合,比如著名的Horner's rule,Huffman Tree, Dutch Flag Puzzle, Fake Coin Puzzle, Josephus problem等等。可以说,以把这本书里的问题吃透作为算法数据结构的学习过程,如此打下的基础再配以Cracking the Coding Interview之类的适当操练,过面试的算法关决不是难事。
所以我的观点是有保留的推荐此书,注重它所覆盖的topic,实例以及操练课后习题,但同时不应过多依赖其本身正文中的解释,如果发现看不懂大可不必惊慌,算法导论或者Weiss的数据结构等,都是很好地辅助参考资料。
实用主义算法教材典型
对“实用主义算法教材典型”的回应
《算法设计与分析基础》热门书评
-
实用主义算法教材典型
14有用 0无用 Ziggy 2012-12-22
在我们学校,一年一开的算法课由数学系与计算机系的教授轮流教学,教材便是Levitin的这本算法设计与分析基础(当然是英文版)。在学期末的时候,教授会被要求对课程设计本身提出些建议。数学系教授的建议非常明确:请换一本教材!是的,对于做理论出身研究方向为Operations Research的数学系教授...
-
短小精干
5有用 0无用 Linn 2007-02-09
如果说CLR是牛津高阶,那这本书就是麦克米伦。作为一本introduction的书籍,更注重的是概念的讲解分析,应用方法。没有具体的算法证明,毕竟CLR有1000多页。这本书的分类也很有特点,算法的分类不再是传统的——数据结构,搜索,排序;而是根据算法的特点分类——divide and conque...
-
简单但是实用
4有用 0无用 句号 2009-12-11
一直在看,很有特色,被很多大学选作本科教材。是一本可以让你不断可以回去看又不觉得很深奥。习题不难但是非常有趣,很多面试题就是从中变种而来。归类是最大特色,首先把当前的算法难题classify as sorting,seaching, string processing, graph problems...
-
很好很好
3有用 0无用 第一剑豪 2013-09-11
为什么评分只有8.3呢?从实用性的角度看,这本书比算法导论好啊!后者就是个百科全书,能给你一切你想知道的相关内容,前提是你愿意沉浸其中,努力学习。前者能帮你迅速入门,提高兴趣,打下基础,尤其是非计算机专业的学生,更多是追求实用,会用,如何用,繁杂的数学推导其实并不怎么关心或者以后有空关心,从这一点来...
-
好书
3有用 0无用 小东 2009-03-12
这本是我们这学期的教材。很不错。对算法做了一个很新颖的划分,可以看到它和我们经常看的算法书的知识点划分很不一样。作者得归类很不错。对一些常用思想做了分类。比如作者对分治做了几个分类。纯思维层面的切入分析,而不像以前的分为一般算法和图论那样子。书中有不错的习题。思想描述有一定的思维引导性质。...
书名: 算法设计与分析基础
作者: Anany Levitin
出版社: 清华大学出版社
原作名: Introduction to the Design and Analysis of Algorithms
译者: 潘彦
出版年: 2007-1-1
页数: 409
定价: 49.00元
装帧: 胶版纸
丛书: 国外经典教材·计算机科学与技术
ISBN: 9787302142836