数据结构与算法之美(一):概论

  • 最近在极客时间上面学习王争老师的课程《数据结构与算法之美》,以前虽然学过一些皮毛,但是不够精,作为程序员的基本内功,还是要继续学习。至此通过总结的方式,把这门课的要点记录下来,供自己思考回顾,也分享给大家。

一、什么是数据结构?什么是算法?

  • 1、广义上,数据结构指的是一组数据的存储结构,算法指的是操作数据的一组方法。
  • 2、数据结构和算法之间有什么关系呢?数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要建立在特定的数据结构之上,因此无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

二、学习的重点

  • 想要学习数据结构与算法,首先要掌握复杂度分析,因为数据结构与算法解决的就是如何更省、更快地存储和处理数据的问题,因此我们要有一个衡量效率和资源消耗的方法,这就是复杂的分析。
  • 搞定复杂度分析后,后面就是数据结构与算法的正文内容了,如下所示:

数据结构与算法之美(一):概论_第1张图片

  • 作为初学者和非算法工程师,只需要掌握最常用、最基础的20个数据结构与算法,学习他们的:“来历”、“特点”、“适合解决什么问题”和“实际的应用场景”,分别是一下10个数据结构和10个算法:
  • 数据结构:数组、链表、栈、队列、散列表、二叉树‘、堆、跳表、图、Tire树
  • 算法: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

三、如何学习

  1. 边学边练,适度刷题;
    边学边练,每周花 1~2 小时集中把所学中涉及的数据结构和算法,全部写出来,用代码实现一遍。
  2. 多问、多思考、多互动;
  3. 自我激励,每次学习完做一篇学习笔记;
  4. 沉下心不要浮躁,不要想试图一下子掌握所有,学习知识是反复迭代、不断沉淀的过程。

你可能感兴趣的:(算法,基础知识)