声明: 文章中所用到的图片,均来自前Google工程师王争(人称争哥)的极客时间专栏 - 数据结构与算法之美(如有侵权,请作者联系删除)
另* - 有需要订阅此专栏的宝贝们, 欢迎找我分享返现哦~
先知先觉
需要找到好的学习方法、抓住学习重点。
来点铺垫
-
概念
-
广义上 :
- 数据结构就是指一组数据的存储结构。
- 算法就是操作数据的一组方法。
比如说图书馆储藏书籍的时候,为了方便查找,图书管理员一般会将书籍分门别类进行“存储”。 按照一定规律编号,就是书籍这种“数据”的存储结构。 而我们在查找书籍的时候,当然可以一本一本地找,也可以先根据书籍类别的编号,是人文,还是科学、计算机来定位书架,然后再依次查找。 笼统地说,这些查找方法都是算法。
-
狭义上 :
指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。
-
关系 :
数据结构为算法服务,算法要作用在特定的数据结构之上 - 相辅相成
存储数据是为了更好的使用数据, 而使用数据需要知道存储数据时的结构优势。
-
-
基础
- 数学基础 - 高中数学水平
- 编程基础+项目经验
在理解数据结构和算法如何提高效率、如何节省存储空间时会有很直观的感受
划下重点
-
首先要掌握复杂度分析方法。
用来考量效率和资源消耗,解决如何更快、更省的处理和存储数据的问题;
是数据结构和算法学习的精髓。
瞅瞅所有数据结构和算法书籍中都会讲到的知识点
-
其次集中精力攻克以下20个知识点
-
10个数据结构
- 数组
- 链表
- 栈
- 队列
- 散列表
- 二叉树
- 堆
- 跳表
- 图
- Trie 树
-
10个算法
- 递归
- 排序
- 二分查找
- 搜索
- 哈希算法
- 贪心算法
- 分治算法
- 回溯算法
- 动态规划
- 字符串匹配算法
-
提点建议
- 要学习它的“来历”、“自身的特点”、“适合解决的问题”以及“实际的应用场景”。
- 多辩证地思考,多问为什么。
-
给点巧劲
-
1. 边学边练,适度刷题
- 每周花 1~2 个小时的时间,集中把这周的三节内容涉及的数据结构和算法全都自己写出来,用代码实现一遍。
- 可以“适度”刷题,但一定不要浪费太多时间在刷题上(我们学习的目的还是掌握,然后应用)。
-
2. 多问、多思考、多互动
- 多在留言区写下自己的疑问、思考和总结,经常看看别人的留言、和他们进行互动。
- 避免一知半解,要想尽一切办法去搞懂老师所讲过的所有内容。
-
3. 打怪升级学习法
- 每节课后的思考题都认真思考,并且回复到留言区。
- 每节课后都写一篇总结知识点和学习心得的 Blog。
-
4. 知识需要沉淀,不要想试图一下子掌握所有
- 尽情地在留言区问王争老师。
- 先沉淀一下,过几天再重新学一遍。
上述小结
1、指出数据结构和算法的学习重点 - 复杂度分析,以及 10 个数据结构和 10 个算法。
2、分享学习技巧 - 边学边练、多问、多思考。
3、通用学习方法 - 打怪升级法和沉淀法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。