声明: 文章中所用到的图片,均来自前Google工程师王争(人称争哥)的极客时间专栏 - 数据结构与算法之美(如有侵权,请作者联系删除)
另* - 有需要订阅此专栏的宝贝们, 欢迎找我分享返现哦~

先知先觉

需要找到好的学习方法、抓住学习重点。

来点铺垫

  • 概念
    • 广义上 :
      1. 数据结构就是指一组数据的存储结构。
      2. 算法就是操作数据的一组方法。
      比如说图书馆储藏书籍的时候,为了方便查找,图书管理员一般会将书籍分门别类进行“存储”。
      按照一定规律编号,就是书籍这种“数据”的存储结构。
      而我们在查找书籍的时候,当然可以一本一本地找,也可以先根据书籍类别的编号,是人文,还是科学、计算机来定位书架,然后再依次查找。
      笼统地说,这些查找方法都是算法。
    • 狭义上 :

      指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。

    • 关系 :

      数据结构为算法服务,算法要作用在特定的数据结构之上 - 相辅相成

      存储数据是为了更好的使用数据, 而使用数据需要知道存储数据时的结构优势。
  • 基础
    • 数学基础 - 高中数学水平
    • 编程基础+项目经验
    在理解数据结构和算法如何提高效率、如何节省存储空间时会有很直观的感受

划下重点

  • 首先要掌握复杂度分析方法。

    用来考量效率和资源消耗,解决如何更快、更省的处理和存储数据的问题;
    是数据结构和算法学习的精髓。

瞅瞅所有数据结构和算法书籍中都会讲到的知识点

  • 其次集中精力攻克以下20个知识点
    • 10个数据结构
      1. 数组
      2. 链表
      3. 队列
      4. 散列表
      5. 二叉树
      6. 跳表
      7. Trie 树
    • 10个算法
      1. 递归
      2. 排序
      3. 二分查找
      4. 搜索
      5. 哈希算法
      6. 贪心算法
      7. 分治算法
      8. 回溯算法
      9. 动态规划
      10. 字符串匹配算法
    • 提点建议
      1. 要学习它的“来历”、“自身的特点”、“适合解决的问题”以及“实际的应用场景”。
      2. 多辩证地思考,多问为什么。

给点巧劲

  • 1. 边学边练,适度刷题
    1. 每周花 1~2 个小时的时间,集中把这周的三节内容涉及的数据结构和算法全都自己写出来,用代码实现一遍。
    2. 可以“适度”刷题,但一定不要浪费太多时间在刷题上(我们学习的目的还是掌握,然后应用)。
  • 2. 多问、多思考、多互动
    1. 多在留言区写下自己的疑问、思考和总结,经常看看别人的留言、和他们进行互动。
    2. 避免一知半解,要想尽一切办法去搞懂老师所讲过的所有内容。
  • 3. 打怪升级学习法
    1. 每节课后的思考题都认真思考,并且回复到留言区。
    2. 每节课后都写一篇总结知识点和学习心得的 Blog。
  • 4. 知识需要沉淀,不要想试图一下子掌握所有
    1. 尽情地在留言区问王争老师。
    2. 先沉淀一下,过几天再重新学一遍。

上述小结

  • 1、指出数据结构和算法的学习重点 - 复杂度分析,以及 10 个数据结构和 10 个算法。
  • 2、分享学习技巧 - 边学边练、多问、多思考。
  • 3、通用学习方法 - 打怪升级法和沉淀法。

MoeRookie
3 声望1 粉丝

为全国人民的居家智能化而竭尽吾力!


引用和评论

0 条评论