作业帮 > 综合 > 作业

THE ALGORITHM DESIGN MANUAL怎么样

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 00:50:11
THE ALGORITHM DESIGN MANUAL怎么样
THE ALGORITHM DESIGN MANUAL怎么样
之前读过《算法导论》(常被简称为CLRS,下同),读这本是想换个角度来研究下算法.虽然很多东西已经通过前者有所了解,这里就谈谈二者的不同之处. 一方面,数学性的推导和证明还是CLRS比较擅长,后者大多数情况只是尽量做到让读者能够理解而已,这一点在上面的评论“可以作为浅显易懂的入门教材”一文也指出了,我就不再细谈了. 另一方面,本书对于实践是非常重视的,在介绍算法的同时不停留在代码和思路本身,同时也会讲一些实践细节,甚至通过专门的章节,也即书中的War Story来加深读者对算法的理解.不过很惭愧的是,由于时间有限,War Story我基本没读几篇,浅尝辄止而已. 更有指导意义的是,书中的第二部分收集和归类大量的算法问题,并对这些问题的求解做出了分析.这个所谓的分析就是,把问题具体化,在不同情况下都选择相应的最优算法.尽管没有给出可以直接用来“复制-粘贴”的代码,但这样做明显比“笼统地写出一个问题—给出一个唯一答案”的做法强得多.当然,通过对于第一部分算法介绍的阅读,第二部分可以先做泛读,遇到具体问题时再来查阅对应的解决方案的指导,此时还能根据给出的参考文献进行深入的阅读.这种细致全面的安排可以看出作者的用心之处. 再谈谈一些其他的读书收获吧,下面是我印象比较深的地方: 1.CLRS在介绍DFS时写成了一个子程序,后面的拓扑排序、强联通分支等使用到DFS的算法将其调用;而本书的DFS是直接写成了一个框架(这种做法你还会在回溯法、近似字符串匹配等地方看到),通过修改其不同的子函数来完成不同的功能如拓扑排序、强联通分支.我不评价哪种更好,只是CLRS版的DFS先入为主,我以CLRS版为准. 2.在读完《算法设计手册》的第7章回溯法之前,我对回溯法的认知完全是云里雾里.虽然也写过不少回溯法的程序,甚至做过剪枝处理,但它们都局限于具体问题的求解,完全没有一个全局性的概念.这本书向我展示了回溯法的框架,可以套用至很多回溯法程序(然后再进行简化),一举心中的廓清迷雾,这个章节很建议阅读. 3.本书第一部分每个章节的练习题中包含了面试题部分,起初还不怎么注意,直到被有些难住时,google其解法发现居然是货真价实的google、ms、amazon面试题!如果即将进行参加招聘面试笔试,这部分题目还是值得做做的.虽然通过作者的网页和google、stackoverflow等可以找到大部分的解答,不过我还是抽空亲自把这部分全部题目做完并进行了总结,有兴趣的读者可以参照文末链接. 下面是几个相关链接: 原书勘误表:http://www.cs.sunysb.edu/~skiena/algorist/book/errata 章末习题答案:http://nbl.cewit.stonybrook.edu:60128/mediawiki/index.php/The_Algorithms_Design_Manual_%28Second_Edition%29 我写的几篇章末习题面试题部分答案,水平有限,请多多包涵,已经尽量最优化. 第一章:http://www.cnblogs.com/wuyuegb2312/p/3257558.html 第二章:http://www.cnblogs.com/wuyuegb2312/p/3258670.html 第三章:http://www.cnblogs.com/wuyuegb2312/p/3260011.html 第四章:http://www.cnblogs.com/wuyuegb2312/p/3263697.html 第五章:(待发) 第七章及回溯法总结:(待发) 第八章及动态规划总结:(待发)