链接:https://www.zhihu.com/question/20370438/answer/38995813
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
推荐@peng_gong的我的算法学习之路。该文里提及了不少通用的数据结构与算法教材,以及作者阅读的体会。
如果文中的算法书都能hold住了,再接下两板斧:MIT的Advanced Data Structures和Advanced Algorithms两门课。另外还有一本Advanced Data Structures: Peter Brass: 9780521880374: Amazon.com: Books,难度比MIT两门课小不少,篇幅适当,也讲了一些有趣的话题(making data structures dynamic/persistent, etc)
【领域特定篇】
Purely Functional Data Structures: Chris Okasaki: 9780521663502: Amazon.com: Books
Pearls of Functional Algorithm Design: 9780521513388: Computer Science Books @ Amazon.com
对函数式语言程序员有用。
Distributed Algorithms: An Intuitive Approach: Wan Fokkink: 9780262026772: Amazon.com: Books
分布式算法书。篇幅短,介绍直白。
Hacker's Delight (2nd Edition): 9780321842688: Computer Science Books @ Amazon.com
位运算黑魔法教材,对底层感兴趣的程序员可以看下。
Algorithms on Strings: Maxime Crochemore, Christophe Hancart, Thierry Lecroq: 9781107670990: Amazon.com: Books
Parsing Techniques: A Practical Guide (Monographs in Computer Science): Dick Grune, Ceriel J.H. Jacobs: 9780387202488: Amazon.com: Books
做字符串处理有用。
Foundations of Multidimensional and Metric Data Structures (The Morgan Kaufmann Series in Computer Graphics): Hanan Samet: 9780123694461: Amazon.com: Books
空间数据结构,做图形学/地理数据库等有用。
Clever Algorithms: Nature-Inspired Programming Recipes: Jason Brownlee: 9781446785065: Amazon.com: Books
少有的启发式算法综合教材,讲到的启发式算法很多,模拟退火/蚁群优化/遗传算法/神经网络等等均有涉及,有ruby示例。
【一代宗师篇】
An Introduction to the Analysis of Algorithms (2nd Edition): Robert Sedgewick, Philippe Flajolet: 9780321905758: Amazon.com: Books
Sedgewick又一力作,如书名,介绍分析算法复杂度的各种数学技巧。
Handbook of Data Structures and Applications (Chapman & Hall/CRC Computer and Information Science Series): Dinesh P. Mehta, Sartaj Sahni: 9781584884354: Amazon.com: Books
比Peter Brass的Advanced Data Structures还要Advanced得多的数据结构书,已经非常接近学术前沿了。可以当作wikipedia以外的数据结构参考书。。。
入门级书目就不说了,参见各种算法课本,其中大部分常见算法打一遍你就入门了。
《编程珠玑》:这本书,总感觉是给不懂算法的人讲一些算法的,经常玩算法的会感觉好多他讲得似乎很神奇的东西,其实很常见...不过这本基本上是面试必读书目,因为许多人都爱出这上面的题。
《算法导论》:经典书目,必读,如果有能力,也可以拿它当入门书。
《计算机程序设计艺术》(TAOCP):这个,我没读多少,太数学了,自己功底还不够。。得再修炼几年。
《算法艺术与信息学竞赛》(刘汝佳的黑书):这本书会给你提许多信息学竞赛中常用的算法,算法说得比较深入,但是很多时候书中的一个显然够你证明一个星期了。读这本书主要是让你知道原来还有这么种算法,具体这种算法该怎么去实现,你自己去找相关资料吧,因为这本书讲得确实不详细。
作者:张云聪
链接:https://www.zhihu.com/question/20370438/answer/14923646
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/20370438/answer/15325130
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
强烈推荐学习Coursera上的这个在线课程:Algorithms, Part I (https://www.coursera.org/course/algs4partI)
普林斯顿的课,如果你只懂得什么是栈、队列,却连一个set类都实现不出时,听这个课是最合适的了。免费的。
<img src="https://i-blog.csdnimg.cn/blog_migrate/7be01538c3295c6a82cd40ecef00af97.png" data-rawwidth="188" data-rawheight="234" class="content_image" width="188">PS:这个课马上就要结课了,视频、课件等资源会再保留一个星期左右,但下载到本地是合法、免费的,感兴趣的话抓紧下载。另外,Algorithms, Part II(https://www.coursera.org/course/algs4partII)马上又要开课,可以去选。时间充裕的话,最好能认真完成作业,作业通过类似ACM竞赛评测系统的一个自动评分系统提交。
Coursera上面的课绝大多数都是精品,不止是理工类的课。很多人文社科类的课也非常推荐。