抓住重点,系统高效地学习数据结构与算法
1. 什么是数据结构?什么是算法?
- 广义上讲,数据结构就是指一组数据的存储结构,是相互之间存在一种或多种特定关系的数据元素的集合。算法就是操作数据的一组方法。(数据结构有很多定义,这里只是一种)
- 狭义上讲,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。都是前人智慧的结晶。都是前人从很多实际操作场景中抽象出来的,经过非常多的求证和验检,可以高效地帮助我们解决很多实际开发问题。
- 数据结构和算法相辅相成,数据结构是为算法服务,算法要作用在特定的数据结构之上。比如因为数组具有随机访问的特性,常用的二分查找算法需要用数组来存储数据,但如果选择链表这种数据结构,二分查找就无法工作了。
2. 最重要的概念-复杂度分析
3.20个最常用、最基础的数据结构
- 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;
- 10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
4.学习的方法
- 边学边练、适度刷题
- 多问、多思考、多互动
- 打怪升级学习法;在枯燥的学习过程中,也可以给自己设立一个切实可行的目标.
- 知识需要沉淀、不要想试图一下子掌握所有。
5.个人总结
学习数据结构别无他法,唯有坚持下去,思路比记忆更重要,思考比动手更有效,每天给自己提一点问题,然后去解决它。将知识结构化刚在脑海中。日拱一卒,不期速成。