1

一、引言来

大学学习的第二个重要的课程就是《数据结构与算法》,当时学下来云里雾里饶,也不知道有什么作用,只是把重要的概念记下来应付考试。工作以后发现除了面试考官经常问起来,更重要的时候工作上很多时候都能用上,用上合适的数据存储结构、作用于特定数据结构上算法后,在空间复杂度和时间复杂度上都有明显的效率提升。为了回顾数据结构与算法并加上印象,特开展专题记录。

二、介绍来

1.何为数据结构与算法

  • 广义上,也就是从课本上说,数据结构就是一组存储数据的结构,而算法能就是操作数据的一组方法。
  • 狭义上,其实是针对著名的数据结构与算法。著名的意思即前人的智慧结晶,我们时常听到的堆,栈,二分查找,快速排序等都是著名的数据结构与算法。站在巨人的肩膀上,我们能有更卓越的成就。

2.数据结构与算法的关系

总的来说两者是相辅相成的,缺一不可。

数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。

数据结构是静态的,它只是组织数据的一种方式。如果不在它的基础上操作、构建算法,孤立存在的数据结构就是没用的。

3.学习两者的方向

3.1. 掌握常用的数据结构和算法的特点(口诀)
重点是学习他们的: “ 来历 ” 、 “ 特点 ” 、 “ 适合解决什么问题 ” 和 “实际的应用场景 ” 。

数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、 Trie 树

算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

3.2. 能进行复杂度分析(心法)
效率和资源消耗的度量衡即复杂度分析是数据结构和算法学习的精髓

数据结构和算法解决的是如何更省、更快地存储和处理数据的问题,因此,我们就需要一个考量效率和资源消耗的方法,这就是复杂度分析方法。


那么倔强的石头
3 声望1 粉丝

业精于勤荒于嬉,行成于思毁于随