该文章作为自己学习 数据结构和算法之美 的学习笔记二,如何抓住重点,系统高效地学习。
1、什么是数据结构,什么是算法
数据结构就是一组数据的存储结构,然后算法就是操作这一组数据的方法。
就如图书馆存储图书,图书管理员会将书籍分门别类的进行“存储”。按照规则将图书规律编号就是书籍这种数据的存储结构。我们在图书馆查找一本书,我们按照这本书的类别,来定位书架,然后再依次查找,这个查找方法就是算法。
现在我们需要学习的就是前人得出来的的经典的数据结构和算法,比如:队列、栈、堆、二分查找、动态规划等。都是可以直接使用在实际开发中并能给我们解决实际问题的。
2、学习的重点
首先要掌握一个数据结构与算法的重要的概念----复杂度分析。数据结构和算法解决的就是如何更省、更快存储和处理数据的问题。需要一个考量效率和资源的方法,就是复杂度分析方法。
需要掌握10个数据结构:
- 数组
- 链表
- 栈
- 队列
- 散列表
- 二叉树
- 堆
- 跳表
- 图
- Trie 树
10个算法:
- 递归
- 排序
- 二分查找
- 搜索
- 哈希算法
- 贪心算法
- 分治算法
- 回溯算法
- 动态规划
- 字符串匹配
3、怎么学
1、边学边练习,每周学习3篇文章,每周使用代码编写3篇文章中使用到的代码
2、主动提问,多自己思考
3、每学习完一篇,记录博客
4、沉下心来,持之以恒