破壳AI

  • 编程入门
    • C语言
    • 数据结构及算法基础
  • 应用程序开发
    • C++
    • Windows API编程
    • opengl图形编程
  • 计算机科学与Web
    • Python
    • 编程语言学
    • 信息理论
    • 人工智能
  • 计算机原理
    • 汇编
    • 系统编程
    • 操作系统
    • 编译原理
    • 网络
  • 杂谈
  • 其他
    • 关于
    • 友链
    • 支持小站
    • 留言
    • 订阅
Focus - Keep things simple
  1. 首页
  2. 编程入门
  3. 数据结构及算法基础
  4. 正文

数据结构与算法学习路线

2022-07-10 65点热度 0人点赞 0条评论

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

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

一、入门

  1. 《大话数据结构》

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

  1. 《算法图解》

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

二、基础

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

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

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

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

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

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

三、进阶

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

  1. 《算法导论》

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

  2. 《算法》

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

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

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

四、实战

动手写代码动手写代码!

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

总结的非常全,将数据结构和算法分类,并提供了实战题目和对应的题解。强烈推荐!

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

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

五、面试

  1. 《剑指 offer》

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

  2. 《编程珠玑》

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

  3. 《编程之美》

    这本书有多位作者,其中绝大部分是微软的工程师,所以书的质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者要面试 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
同样是涵盖了主流数据结构和算法,提供动态演示功能。

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

订阅博客,及时获取文章更新邮件通知

检查您的收件箱或垃圾邮件文件夹以确认您的订阅。

close

订阅博客,及时获取文章更新邮件通知

检查您的收件箱或垃圾邮件文件夹以确认您的订阅。

相关文章

  • 动态数组—C语言数据结构实现
  • 数据结构与算法基础-C语言实践 01:(函数与递归)
  • 漫画算法之『数组』-Java演示
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022-07-10

古月弧

保持专注,持续进步。

打赏 点赞
< 上一篇

文章评论

取消回复

文章目录
  • 一、入门
  • 二、基础
  • 三、进阶
  • 四、实战
  • 五、面试
  • 六、课外阅读
  • 可视化展现
公告

网站注册

微信公众号

最新 热点 随机
最新 热点 随机
Kail Linux破解WIFI密码之降龙十八掌 数据结构与算法学习路线 利用Python&pdfkit自动将微信公众号文章导出为pdf文档 动态数组—C语言数据结构实现 Ubuntu Linux安装VMware Tools详细排错纠察教程 C语言练手小程序-ACLLib界面程序开发 Git中合并多个提交的方法总结
机器与人类视觉能力的差距C++之父Bjarne Stroustrup:简单的表述方式才是最优的方案到底该不该用 C++ 异常?测量一段代码的执行时间的常见方法现代 C++:一文读懂智能指针现代 C++:Lambda 表达式现代 C++:自动类型推导
动态数组—C语言数据结构实现 计算机领域共同学习路线,诚邀加入 吴恩达机器学习作业Python3实现(四):神经网络及其反向传播 高温超导新突破,这次摸到“象鼻子”了? 现代 C++:Lambda 表达式 测量一段代码的执行时间的常见方法 C Primer Plus 第六版 编程练习第六章答案 最新出炉

COPYRIGHT © 2019-2022 破壳AI. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备19036001号