一、基本概念
数据
能被计算机操作的描述客观事物的符号
数据元素(记录)
组成数据的、有意义的基本单位
数据项
一个数据元素由若干数据项组成,是数据的最小单位
数据对象
性质相同的数据元素的集合,是数据的子集
二、数据结构
有一种或多种关系的数据元素的集合
逻辑结构
- 集合
- 线性结构
- 树形结构
- 图形结构
物理结构
- 顺序存储
- 链式存储
三、抽象数据类型
数据类型
一组相同性质的值的集合 + 定义在此集合上的一些操作
原子类型
不可再分的类型:整型、实型、字符型等
结构类型
若干类型组合而成:整型数组(由若干整型数据组成)
抽象数据类型(ADT)
一个数学模型 + 定义在该模型上的一组操作
ADT抽象数据类型名
Data
数据元素之间的逻辑关系
Operation
操作1
初始条件
结果描述
...
endADT
四、算法
解决特定问题求解步骤的描述
特性
- 输入输出
- 有穷
- 确定
- 可行
好的算法
- 正确
- 可读
- 健壮
- 时间效率高,存储量低
算法效率度量
- 事后:运行时间
- 事前:统计估算
时间复杂度
T(n) = O(f(n))
n:问题规模
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
默认时间复杂度为最坏时间复杂度
空间复杂度
S(n) = O(f(n))
O(1):原地工作