实用主义算法教材典型_算法设计与分析基础书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 算法设计与分析基础 > 实用主义算法教材典型
Ziggy 算法设计与分析基础 的书评 发表时间:2012-12-22 14:12:33

实用主义算法教材典型

在我们学校,一年一开的算法课由数学系与计算机系的教授轮流教学,教材便是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 2014-09-29 15:36:46

同意楼上,算法导论很好,很入门,讲得比这本书要详细清楚多了,真的。千万别被厚度吓倒

黑山老妖 2014-09-29 14:33:08

你们都不愿意相信算法导论真的是for dummies的优先选择,我们的教材是那本data structure and algorithm analysis in C,好像是这么写的,有些内容后来看了算法导论才搞明白。其实算法导论写得算是很清楚易懂了,条理清晰,就是厚了一点,不必全部看一遍,拿来当手册也是极好的。
另外还翻了一下那本彩色的很厚的Sedgewick的algorithms,这本入门看也不错,例子的图解很详细,我相信初中生也能看懂。但是我是没耐心看前面的好多章。其他的没有仔细看,不好多说。
你需要多翻几本,找适合自己的看,可能某些书的某些章节写的特别好,可以参杂着看。
----------------------------------------------
2014-07-06 07:58:33 arinya

你们说得我好纠结呀……不知道用什么教材了。有没有什么for dummies的算法教材可以推荐呢?

far far away 2014-07-06 07:58:33

你们说得我好纠结呀……不知道用什么教材了。有没有什么for dummies的算法教材可以推荐呢?