一、什么是数据结构?什么是算法?
重概念,但不需要深挖严格的定义。
数据结构是静态的,它只是组织数据的一种方式,数据结构是为算法服务的,算法要作用在特定的数据结构之上才能发挥出功力。
二、学习重点
1. 复杂度分析
这个概念很重要,是数据结构与算法的精髓,占据了半壁江山。
2. 20 个最常用的、最基础数据结构与算法
-
10 个数据结构:
数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树
-
10 个算法:
递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法
三、学习方法
切忌死记硬背,切忌为了学习而学习;多主动辩证的思考,多问为什么,最重要的是坚持
这么做。
方法论
学习过程中多问如下几个问题:
-
来历
-
自身特点
-
适合解决的问题
-
实际的应用场景
实操
落实到实际操作,有如下方法:
-
边学边练,适度刷题
-
多问、多思考、多互动
-
立切实可行的 flag,并坚持达成,形成激励机制
比如:每课都认真思考,回复留言;每节课都写一篇学习笔记,学习心得,发布到博客;等等方法
我的 flag
:
- 成立学习小组
- 2 课/周 (个人动态调整,2 课最多,多了学习效果不好)
- 坚持用 python 实现每个算法
- 坚持每课都与小组成员讨论交流,碰撞思维的火花
- 每节课输出学习总结笔记,学习心得,并发布到 Blog。
学习知识是反复迭代、不断沉淀的过程,沉着冷静不急躁