个人认为学习一门课程,脑中先对这门课程有个大体的概念再去详细学习,这样的效果会比较好。
数据结构的基本概念
1.顺序存储结构
:数据存放在地址连续的空间里。
-
链式存储结构
:把数据存放在任意的存储单元里,用一个指针存放数据元素的地址,通过地址找到关联元素。
算法的基本概念
算法的目标是时间效率高、存储量低来完成一个操作。
算法的度量方式:时间复杂度 + 空间复杂度
-
时间复杂度
: 随着问题规模N的增大,算法执行时间的增长率和问题规模函数f(N)的增长率相同,即算法执行时间的增长率为与f(N)有关系的函数,记做O(f(N)) 。 记渐近时间复杂度为T(N), 则有
T(N) = O(f(N))。
时间复杂度只关注主项的阶数,低阶的在运算量大的时候可以忽略。
常见的时间复杂度:
- 常数阶 —-> O(1)
- 线性阶 —-> O(n)
- 平方阶 —-> O(n²)
- 对数阶 —-> O(log<2> n)
-
空间复杂度
: 类似时间复杂度,空间复杂度记做 S(n),
S(n) = O( f(n) );
一般来说求算法的复杂度指的是求算法的时间复杂度。