为什么要学习数据结构和算法
我们学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生。
掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。
如何抓住重点,系统高效地学习数据结构与算法
广义上讲:数据结构就是一组数据的存储结构。算法就是操作数据的一组方法。
狭义上讲:是指某些著名的数据结构和算法,eg:队列,栈,堆,二分查找,动态规划等。
数据结构和算法是相辅相成的,数据结构是为算法服务的,算法要作用在特定的数据结构上。数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们需要一个考量效率和资源消耗的方法,就是复杂度分析方法。
- 学习数据结构和算法:首先要掌握一个数据结构与算法中最重要的概念——复杂度分析。
知识点
需要掌握
20 个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这 20 个知识点就足够了。
- 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
- 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
学习技巧
- 边学边练,适度刷题
- 多问、多思考、多互动
- 打怪升级学习法
- 知识需要沉淀,不要想试图一下子掌握所有
来源
本文是从 王争 数据结构与算法的学习-01 | 为什么要学习数据结构和算法? 和 02 | 如何抓住重点,系统高效地学习数据结构与算法?。跟着大神学习,逐渐进步