- A+

最近在学习Google大神王争老师开设的《数据结构与算法之美》的专栏,这里略作小结,也希望可以把学到知识有效的消化。
为什么要学习数据结构与算法?
- 建立空间复杂度与时间复杂度意识,提高代码质量
- 设计系统基础架构,提高编程技能,提高设计能力
- 培养解决问题的思路与方法,提升解决问题能力
- 训练逻辑思维
如何学好数据结构与算法?
如何高效学好数据结构与算法,需要抓住学习重点,不要盲目的跟风学习,今天学一点,明天学一点,毫无目标,列出详细的学习目标以及学习计划,才会事半功倍。
三个重点
1、理解概念
数据结构是从广义上讲是相互之间存在一种或多种特定关系的数据元素的结合。
数据结构分为逻辑结构和物理结构
逻辑结构是指数据对象中数据元素之间的相互关系。分为以下四种:
1、集合结构 -> 集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。
2、线性结构 -> 线性结构中的元素之间是一对一的关系。
3、树形结构 -> 树形结构中的数据元素之间存在一种一对多的层次关系。
4、图形结构->图形结构的元素是多对多的关系。
物理结构是指数据的逻辑结构在计算机中的存储形式。分为以下两种:
1、顺序存储结构->数据元素存放的地址连续的存储单元里,其数据逻辑关系和物理关系一致
2、链式存储结构->数据元素存放在任意的存储单元里,可以是连续的也可以是不连续的
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。(说简单点就是操作数据的一组方法)
2、学习重点
数据结构与算法的内容很多,我们没有必要把所有数据结构与算法知识点都学一遍,一是没有这么大的精力,二是部分数据结构在日常工作中不会遇到(当然感兴趣的同学可以去了解全部内容),学习一些常用的数据结构与算法的知识点,足以应对日常开发与面试。这里梳理一些重点的知识点,引用下王争老师梳理的数据结构与算法知识点思维导图。

总结一下常用的、基础的数据结构与算法,着重学习
10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Tree树
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
3、学习技巧
- 边学边练 掌握理论的同时,适当的刷题 将涉及到的算法知识用代码走一遍,加固记忆。
- 多思考、多练习、多互动 切记不要死记硬背算法题目,通过思考得出最优结论。
- 学会给自己定目标,多激励自己,树立自信心 。
- 学会某个知识点后,思考应用场景,做到学以致用。
- 我的微信
- 加好友一起交流!
-
- 微信公众号
- 关注公众号获取分享资源!
-