数据结构与算法学习路线

这部分知识相当于C语言的进阶知识啦,而且这些知识对所有语言是通用的,把它比作编程语言的灵魂毫不为过。

一、入门

  1. 《大话数据结构》

这本书最大的特点是,它把理论讲得很有趣,不枯燥。而且每个数据结构和算法,作者都结合生活中的例子进行了讲解, 能让你有非常直观的感受。

  1. 《算法图解》

主打“图解”,通俗易懂。它只有不到 200 页,所以内容比较少。作为入门,看看这本书,能让你对数据结构和算法有个大概的认识。

欢迎关注我的 微信公众号:破壳Ai,分享计算机最佳学习路径、教程和资源。成长路上,有我陪你!

二、基础

  1. 《数据结构与算法分析 :C 语言描述》

这本书非常系统、全面、严谨,而且又不是特别难,适合对数据结构和算法有些了解,并且掌握了至少一门编程语言的同学。

  1. 算法设计与分析基础(豆瓣评分8.7)

本书十分适合用作算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要读者具备数据结构和离散数学的知识即可。

  1. 算法详解(卷1)——算法基础(豆瓣评分8.8)

本书为对算法感兴趣的广大读者提供了丰富而实用的资料,能够帮助读者提升算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及在准备面试的应聘者和面试官阅读参考。

三、进阶

这三本书非常经典,但都很厚,看起来比较费劲,估计很少有人能全部看完。但如果想更深入地学一遍数据结构和算法,还是建议去看看。

  1. 《算法导论》

章节安排不是循序渐进,里面有各种算法正确性、复杂度的证明、推导,对数学功底有一定要求,看起来有些费劲。

  1. 《算法》

偏重讲算法。内容不够全面,对数据结构方面的知识讲的不多,动态规划这么重要的知识点却没有讲。

  1. 《计算机程序设计艺术》

这本书包括很多卷,相比于其他书籍有更好的深度、广度、系统性和全面性。但如果你对数据结构和算法不是特别感兴趣,没有很好的数学、算法、计算机基础,很难把这本书读完、读懂。

关注我的 微信公众号:破壳Ai学习数据结构

四、实战

动手写代码动手写代码!

  1. LeetCode:图解算法数据结构力扣

总结的非常全,将数据结构和算法分类,并提供了实战题目和对应的题解。强烈推荐!
![](https://img-blog.csdnimg.cn/img_convert/bf8666e4a4ec3fd2f038f027e6c6f116.png#clientId=u245baa3a-25bb-4&from=paste&id=R6aL1&margin=[object Object]&name=image.png&originHeight=564&originWidth=720&originalType=url&ratio=1&size=142225&status=done&style=none&taskId=ue1748d5e-c757-453f-9f0d-0899259ccaf)

  1. 网友总结的算法思维系列:

fucking-algorithm/算法思维系列 at master · labuladong/fucking-algorithm

五、面试

  1. 《剑指 offer》

这本书几乎包含了所有常见的、经典的面试题。如果能搞懂这本书里的内容,应付一般公司的面试应该不成问题。

  1. 《编程珠玑》

这本书的豆瓣评分非常高,有 9 分。
这本书最大的特色就是讲了很多针对海量数据的处理技巧。这个可能是其他算法书籍很少涉及的。面试的时候,海量数据处理的问题也是经常会问的,特别是校招面试。不管是开拓眼界,还是应付面试,这本书都很值得一看。

  1. 《编程之美》

这本书有多位作者,其中绝大部分是微软的工程师,所以书的质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者要面试 Google、Facebook 这样的公司,可以拿这本书里的题,先来自测一下。

六、课外阅读

比较适合在平时悠闲的时候翻翻看看,这些书都列举了大量的列子来解释说明,非常通俗易懂。

  1. 《算法帝国》

  2. 《数学之美》

  3. 《算法之美》

推荐这几本书:

  1. 彭军和向毅的《数据结构与算法》

跟完教学视频:

  1. 数据结构:浙江大学的国家精品慕课视频,里面的配套练习非常丰富,对小白也非常友好。

多做OJ题:
有关数据结构和算法的Online Judge都是有一定的难度的,想要搞ACM的话推荐几个Online Judge系统。

  1. 北京大学的Online Judge

  2. 杭州电子科技大学的OJ

经典数据结构和算法题:

  1. 逆波兰算术表达式 :栈的运用
  2. 二叉树前序/中序/后序遍历:二叉树的遍历
  3. 合并果子 :堆(二叉树的一种)的运用
  4. 贪吃蛇最短路径寻食:广度优先搜索算法(用到队列)
  5. 贪吃蛇最快路径选择:深度优先搜索算法(用到栈)
  6. 遗传算法计算函数零点:用到遗传算法的思想

可视化展现

  1. visualgo

https://visualgo.net/zh
涵盖了主流的数据结构,可视化展示,支持对其进行各种操作,以及提供了很多示例

  1. Data Structure Visualizations

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
同样是涵盖了主流数据结构和算法,提供动态演示功能。

猜你喜欢

转载自blog.csdn.net/weixin_42723246/article/details/127293901