老师你好,准备刷完视频后扫一本数据结构及算法方面的书,依托书本这样后期学习也会方便点。。。老师能帮着推荐一本相关的书吗?

来源:6-6 二分搜索树的前序遍历

陈三子

2019-02-16

老师你好,准备刷完视频后扫一本数据结构及算法方面的书,依托书本这样后期学习也会方便点。。。老师能帮着推荐一本相关的书吗?

写回答

1回答

liuyubobobo

2019-02-17

如果只推荐一本的话,我推荐《算法4》。


==========


关于这个问题,我在另一个课程中有一个详细回答,转贴如下:


对于算法方面的书籍,其实是对于任何领域的学习书籍,我的见解都是这样的。首先,如果是算法的初学者,对算法的内容不很熟悉,你需要找一本入门水平的书籍。在这个阶段,我个人不建议去阅读任何“经典”的大厚本教材。去随便找一本小薄本的教材。因为对于入门水平来说,教材之间的差异是非常小的。你需要做的是找到一本可以用你能接受的时间“读完”的教材,以此来大致了解这个领域研究的主要内容,研究这个内容的主要思路和一些基本方法。通常大学提供的教材都能很好的完成这个任务。不要嫌大学的课本老土。


我回忆了一下,我在大学本科阶段,算法入门时阅读的教材有这些。我不是推荐这些教材,因为时代变了,现在很有可能有更好的教材。但是我的重点是,你可以看出来,这些都是很普通的书籍,没有什么神秘的。再次强调:任何入门水平的教材都能满足这个阶段的需求。不要纠结教材不是经典教材。适合你水平能让你有收获的就是好教材。


数据结构(https://book.douban.com/subject/1085842/  )

算法设计与分析基础(https://book.douban.com/subject/1173877/  )(这本我不很肯定就是这本,这一系列好像算法相关的书挺多的,但大概就是这么个封皮。P.S. 当时看这本书,印象里错误挺多的。但那会儿一点底子都没有,这本书给我的启发挺大。)

算法设计与分析(https://book.douban.com/subject/1110376/  )


如果你已经不完全是入门水平了,你可以看一些经典教材了。对于经典教材,大多数评分高的教材都不错,都可以读。不同经典教材之间大多是侧重不同,没有优劣之分,不然也不会是经典了。我可以推荐的认为值得一度的教材包括(这个阶段我读的大部分都是英文原版,大多数国内应该都有相应的中文版本,如果有兴趣你需要自己找一下。):

《算法导论》,不说了,但是怎么读很重要,见上面的问答链接。但算法导论确实太偏数学,下面的三本书可能更接地气:

《Algorithms》https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X/ref=sr_1_2?ie=UTF8&qid=1501265589&sr=8-2&keywords=algorithm   

《The Algorithm Design Mannual》https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ref=sr_1_1?ie=UTF8&qid=1501265462&sr=8-1&keywords=algorithm+design   

《Algorithm Design》https://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321295358/ref=sr_1_8?ie=UTF8&qid=1515725309&sr=8-8&keywords=algorithms   


另外,很多算法书籍并非教材,但也能收获很大,有兴趣闲时可以找来阅读:《编程珠玑》《编程之美》《beautiful code》,还有一些记不清了,搜一搜,这类算法休闲读物还挺多的。


我研究生的时候读了一本介绍STL底层源码的书,印象深刻,从C++语言标准库的设计角度把数据结构重新阐述了一遍。不过我现在搜索不到这本书了,也可能是更新了版本以后封面我认不出了。但是以STL为关键字有很多书,可以参考。当时看觉得耳目一新,因为大多数算法与数据结构的书籍只关注性能分析,而不关注设计。但是这本书从标准库的设计角度出发,融合了很多设计模式的知识应用。当然,Java,Python等语言我估计有类似的以标准库为线索介绍标准库中的算法与数据结构设计方式的书籍。如果使用这些语言,可以找找看。


再有一些算法的细分领域,如图论,计算几何还有一些相关的数学,可以找这些细分领域的书籍,整体策略依然是,一定不要一上来就看大厚本的经典教材!先看小薄本的基础教材,我个人认为这很重要。


关于书籍的选择,我的公众号上的一篇文章也可以参考:《高效学习的秘密》:https://mp.weixin.qq.com/s?__biz=MzU4NTIxODYwMQ==&mid=2247483836&idx=1&sn=90854aa76507281403e4dd9cd434a12b&chksm=fd8caefacafb27ec78f999fde4f1217c04c6e2ff28cf51fe511d8fa29d484d9281ff91de8c9c&mpshare=1&scene=1&srcid=0102jzFKj50mojDryu2TZCbw&pass_ticket=dOJG0tU%2Fp7PnRINM%2Bd6drDKwcCOFwTXQeOFXFDCA8tjOkj54FleFVJAMfmoS%2Bhfu#rd   


希望对你有帮助。加油!

0
1
陈三子
谢谢bobo老师~
2019-02-20
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程