1. 何为数据结构与算法?
1.1. 广义上
数据结构就是一组数据的存储结构。
算法就是操作数据的一组方法。
1.2. 狭义上
某些著名的数据结构与算法。
1.3. 数据解决与算法的关系?
数据结构和算法是相辅相成,数据解决是为算法服务的,算法要作用在特定的数据结构之上。
2. 学习的重点
2.1. 复杂度分析
2.2. 常用数据结构
- 数组
- 链表
- 栈
- 队列
- 散列表
- 二叉树
- 堆
- 跳表
- 图
- Trie树
2.2. 常用算法
- 递归
- 排序
- 二分查找
- 搜索
- 哈希算法
- 贪心算法
- 分治算法
- 回溯算法
- 动态规划
- 字符串匹配算法
2.4. 数据结构与算法思维导图
3. 学习的方法
- 学习它的“来历”。
- 学习它的“自身特点”。
- 学习它的“适合解决的问题”。
- 学习它的“实际的应用场景”。
- 不用被动地记忆,要多辩证地思考,多问为什么。
4. 学习的技巧
- 边学边练,适度刷题(每周2小时,本周涉及的数据与算法,全部都自己写出来)。
- 多问、多思考、多互动(留言区写下自己的疑问、思考和总结,看别人的留言)。
- 打怪升级学习法(学习笔记或者学习心得)。
- 知识需要沉淀,不要想试图一下子掌握所有(返回迭代、不断沉淀的过程)。
5. 心得
- 没有捷径,没有杀手锏,更没有一招致胜的“葵花宝典”。
- 不要浮躁,不要丧失思考能力,不要丧失学习能力。
- 只有做好打硬仗的心理准备,遇到困难才能心态平和。
- “放弃”的念头像是一个心魔,它会一直围绕着你。
- 入门是一个非常漫长和煎熬的过程,谁都逃不过。
6. 学习的作用
学习数据结构和算法的过程,是非常好的思维训练的过程。