数据结构和算法

为什么要学习数据结构和算法

我们学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生。

掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。

如何抓住重点,系统高效地学习数据结构与算法

  • 广义上讲:数据结构就是一组数据的存储结构。算法就是操作数据的一组方法。

  • 狭义上讲:是指某些著名的数据结构和算法,eg:队列,栈,堆,二分查找,动态规划等。

数据结构和算法是相辅相成的,数据结构是为算法服务的,算法要作用在特定的数据结构上。数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们需要一个考量效率和资源消耗的方法,就是复杂度分析方法。

  • 学习数据结构和算法:首先要掌握一个数据结构与算法中最重要的概念——复杂度分析。

知识点
image

需要掌握

20 个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这 20 个知识点就足够了。

  • 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
  • 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

学习技巧

  1. 边学边练,适度刷题
  2. 多问、多思考、多互动
  3. 打怪升级学习法
  4. 知识需要沉淀,不要想试图一下子掌握所有

来源

本文是从 王争 数据结构与算法的学习-01 | 为什么要学习数据结构和算法?02 | 如何抓住重点,系统高效地学习数据结构与算法?。跟着大神学习,逐渐进步