开发者社区> 问答> 正文

THE ALGORITHM DESIGN MANUAL怎么样

THE ALGORITHM DESIGN MANUAL怎么样

展开
收起
知与谁同 2018-07-17 20:05:19 2217 0
1 条回答
写回答
取消 提交回答
  • 这个时候,玄酱是不是应该说点什么...
    之前读过《算法导论》(常被简称为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 第五章:(待发) 第七章及回溯法总结:(待发) 第八章及动态规划总结:(待发)
    2019-07-17 22:52:14
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
How Spark is Enabling the New Wave of Converged Applications 立即下载
Spark Meets Smart Meters 立即下载
Algorithms & Tools for Genomic Analysis on Spark 立即下载