一、引言来
大学学习的第二个重要的课程就是《数据结构与算法》,过后学下来云里雾里饶,也不晓得有什么作用,只是把重要的概念记下来应酬考试。工作当前发现除了面试考官常常问起来,更重要的时候工作上很多时候都能用上,用上适合的数据存储构造、作用于特定数据结构上算法后,在空间复杂度和工夫复杂度上都有显著的效率晋升。为了回顾数据结构与算法并加上印象,特发展专题记录。
二、介绍来
1.何为数据结构与算法
- 狭义上,也就是从课本上说,数据结构就是一组存储数据的构造,而算法能就是操作数据的一组办法。
- 广义上,其实是针对驰名的数据结构与算法。驰名的意思即前人的智慧结晶,咱们时常听到的堆,栈,二分查找,疾速排序等都是驰名的数据结构与算法。站在伟人的肩膀上,咱们能有更卓越的成就。
2.数据结构与算法的关系
总的来说两者是相辅相成的,缺一不可。
数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因而,咱们无奈孤立数据结构来讲算法,也无奈孤立算法来讲数据结构。
数据结构是动态的,它只是组织数据的一种形式。如果不在它的根底上操作、构建算法,孤立存在的数据结构就是没用的。
3.学习两者的方向
3.1. 把握罕用的数据结构和算法的特点(口诀)
重点是学习他们的: “ 来历 ” 、 “ 特点 ” 、 “ 适宜解决什么问题 ” 和 “理论的利用场景 ” 。
数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、 Trie 树
算法:递归、排序、二分查找、搜寻、哈希算法、贪婪算法、分治算法、回溯算法、动静布局、字符串匹配算法
3.2. 能进行复杂度剖析(心法)
效率和资源耗费的度量衡即复杂度剖析是数据结构和算法学习的精华
数据结构和算法解决的是如何更省、更快地存储和解决数据的问题,因而,咱们就须要一个考量效率和资源耗费的办法,这就是复杂度分析方法。