数据结构和算法的重要性

算法
1) 算法是程序的灵魂,即使数据繁杂好的算法依然可以让程序保持高速运转!!!
2) 算法是程序使用了的内存计算框架(比如 Spark)和缓存技术(比如 Redis 等)等的核心,可以用来优化程序。

经典语段:
       如果说 Java 是自动档轿车,C 就是手动档吉普。数据结构呢?是变速箱的工作原理。
你可以不知道变速箱怎样工作,就能开车,而且未必就比懂得的人慢。写程序类似,经验可以起到很大作用,但如果你不知道底层是怎么工作的,就永远只能开车,既不会修车,也不能造车。

数据结构和算法的关系


1) 数据结构 (data structure)是一门 研究组织数据方式的学科,可以提高代码效率等。
2) 数据结构是算法的基础, 程序 = 数据结构 +  算法

线性结构和非线性结构
数据结构包括:线性结构和非线性结构。


线性结构
1) 线性结构作为最常用的数据结构,其特点是 数据元素之间是 一对一 的线性关系。
2) 线性结构有两种不同的存储结构,即 顺序存储结构( 数组)和 链式存储结构( 链表)。
3) 线性结构常见的有: 数组、队列、链表和栈。。。

非线性结构
非线性结构包括:二维数组,多维数组,广义表,

 


稀疏数组:

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。
1) 记录数组 一共有几行几列,有多少个不同的值
2) 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而 缩小程序的规模

队列:
1) 队列是一个 有序列表,可以用 数组或是 链表来实现。
2) 遵循 先入先出的原则。