1. 数据元素、数据项
数据元素是基本单位,数据项是最小单位。
2. 数据结构
存在一种或多种特定关系的数据元素的集合。
3. 数据结构的三要素
逻辑结构、物理结构(存储结构)、数据的运算。
4. 逻辑结构
- 集合、线性结构、树形结构、图状结构(网状结构)。
- 集合:集合内的元素没有其他关系。
- 线性结构:数据元素之间是一对一的关系。除了第一个元素之外,所有元素都有唯一的前驱元素;除了最后一个元素,所有元素都有唯一的一个后继元素。
- 树形结构:数据元素之间是一对多的关系。
- 网状结构:数据元素之间是多对多的关系。
5. 物理结构
- 顺序存储、链式存储、索引存储、散列存储。
- 顺序存储:把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中。
- 链式存储:逻辑上相邻的元素物理位置上可以不相邻。
- 索引存储:在存储元素信息的同时,建立附加的索引表。
- 散列存储:根据元素的关键字直接计算出该元素的存储地址(哈希存储)。
6. 算法的特性
- 有穷性、确定性、可行性、输入、输出。
- 有穷性:一个算法必须在执行有穷步之后结束,且每一步可在有穷时间内完成。
- 确定性:算法中每条指令有确切的含义,对于有相同的输入只能做相同的输出。
- 可行性:描述的操作都可以通过已经实现的基本运算执行有限次完成。
- 输入、输出:一个算法可以有零个或多个输入,但输出有一个或多个。
7. 算法的度量
- 算法效率的度量由时间复杂度和空间复杂度来决定。
- 时间复杂度:例如t1(n)=3n+3, t2(n)=n^2+n+100, t3(n)=n^3+n^2+n+100 t1(n)=O(n), t2(n)=O(n^2), t3(n)=O(n^3)
- 空间复杂度:只需关注存储空间的大小和问题规模相关的变量。
- O(1) < O(
) < O(n) < O(n
) <O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)