一、什么是数据结构?什么是算法?
- 1、广义上,数据结构指的是一组数据的存储结构,算法指的是操作数据的一组方法。
- 2、数据结构和算法之间有什么关系呢?数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要建立在特定的数据结构之上,因此无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。
二、学习的重点
- 想要学习数据结构与算法,首先要掌握复杂度分析,因为数据结构与算法解决的就是如何更省、更快地存储和处理数据的问题,因此我们要有一个衡量效率和资源消耗的方法,这就是复杂的分析。
- 搞定复杂度分析后,后面就是数据结构与算法的正文内容了,如下所示:
- 作为初学者和非算法工程师,只需要掌握最常用、最基础的20个数据结构与算法,学习他们的:“来历”、“特点”、“适合解决什么问题”和“实际的应用场景”,分别是一下10个数据结构和10个算法:
- 数据结构:数组、链表、栈、队列、散列表、二叉树‘、堆、跳表、图、Tire树;
- 算法: 递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
三、如何学习
- 边学边练,适度刷题;
边学边练,每周花 1~2 小时集中把所学中涉及的数据结构和算法,全部写出来,用代码实现一遍。 - 多问、多思考、多互动;
- 自我激励,每次学习完做一篇学习笔记;
- 沉下心不要浮躁,不要想试图一下子掌握所有,学习知识是反复迭代、不断沉淀的过程。