本文的电子书均来自网络,仅供学习。若有侵权,麻烦留言联系我将相关电子书删除。
可以的话,大家去购买正版书籍~
针对入门的趣味书
入门初学的同学,不建议过度追求去读经典书,像《算法导论》《算法》。这些经典书对初学者来说,学起来很费劲,容易产生挫败感。所以,建议入门的同学,去看比较容易看的书,比如《大话数据结构》和《算法图解》。不要太在意书写得深浅,重要的是能不能坚持看完。
《大话数据结构》
这本书讲得很有趣,不枯燥。每个数据结构和算法,作者都结合生活的例子进行讲解。可以花两三天读完,最好还能用自己熟悉的语言将书中的例子实现一遍。
《算法图解》
这本书主打“图解”,通俗易懂,有趣,只有不到200页。
这些入门书的共同问题是,缺少细节,不够系统和严谨。如果想要系统学数据结构和算法,看这两本书是不够的。
针对特定编程语言的教科书
《数据结构和算法分析》
国内外很多大学都拿这本书当教材。这本书非常系统,全面,严谨,而且又不是特别难,适合对数据结构和算法有些了解,并且掌握了至少一门编程语言的同学。
这本书有三个版本,分别是《数据结构和算法分析:C语言描述》《数据结构和算法分析:C++语言描述》《数据结构和算法分析:java语言描述》
《数据结构与算法》
如果你对Python或JavaScript比较熟悉,可参考这本书。
面试必刷的宝典
《剑指offer》
这本书几乎包含了所有常见的,经典的面试题。
《编程珠玑》
这本书豆瓣评分有9分,最大特点是讲针对海量数据的处理技巧,这可能是其他算法书籍很少涉及的。
《编程之美》
这本书有多位作者,其中绝大数是微软的工程师,书的质量很有保证。不过,里面的算法题目有点难,也不是很系统。适合有一定基础,喜欢钻研算法问题,或者要面试Google、Facebook这样的公司的同学。
经典大部头
如果想更深入学数据结构和算法,强烈建议读《算法导论》和《算法》
《算法导论》
这本书的章节安排不是循序渐进,里面有很多各种算法的正确性、复杂度的证明、推导,数学公式比较多,一般人看起来很吃力,不适合作为入门书。
《算法》
这本书比起《算法导论》要友好很多,更容易看懂,更适合初学者入门。但缺点是内容不够全面,比如动态规划这么重要的知识点,里面没讲。对于数据结构的东西,讲得也不多,偏重将算法。
殿堂级经典
《计算机程序设计艺术》
这套书的深度、广度、系统性、全面性是其他所有数据结构和算法书籍都无法相比的。如果你对算法和数据结构不是特别感兴趣,没有很好的数学、算法、计算机基础,想读懂这套书比较难。你可把它当做学习算法的终极挑战。
闲暇阅读
适合在闲暇时间阅读的书,甚至连文科生都能读懂。