-
数据结构
-
数据基本组成
- 数据:所有能输入到计算机中去的描述客观事物的符号
- 数据对象:相同特性数据元素的集合,是数据的一个子集
- 数据元素:数据的基本单位,可以说成一个节点
- 数据项:数据的最小单位,多个数据项组成一个数据元素
它们的关系如下图:
-
逻辑结构
数据的逻辑结构是对数据之间关系的描述具体包含:
(1)集合结构

元素直接除了在同一个集合外没有其他对应关系(2)线性结构
元素直接是一对一的关系
(3)树形结构

元素之间是一对多的关系(4)图形结构

元素之间是多对多的关系 -
物理结构
(1)顺序存储结构
会根据元素的数量提前申请一连串连续的存储空间
(2)链式存储机构
用一组任意存储单元存储元素,在加入元素时申请存储空间存储元素
-
-
算法
-
数据结构与算法的关系
程序=数据结构+算法 -
算法的定义
算法就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每个指令表示一个或多个操作 -
算法特性
- 输入输出
- 有穷性
- 确定性
- 可执行性
-
算法的设计要求
- 正确性
- 可读性
- 健壮性
- 时间效率高和储存量低
-
时间复杂度
常用大O表示法常见的时间复杂度:执行次数函数 阶 术语 8 O(1) 常数阶 2n+10 O(n) 线性阶 5n^2+8n+1 O(n^2) 平方阶 7log3n_20 O(log n) 对数阶 3n+nlog2n+17 O(nlog n) nlogn阶 7n^3+3n^2+14 O(n^3) 立方阶 2^n O(2^n) 指数阶 O(1) < O(log n) < O(n) < O(nlog n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
若时间复杂度相等的情况下可用平均情况下的时间复杂度
大O表示法:
(1). 用常数1取代运行时间中所有常数 3->1 O(1)
(2). 在修改运行次数函数中,只保留最高阶项 n^3+2n^2+5 -> O(n^3) (2). 如果在最高阶存在且不等于1,则去除这个项目相乘的常数 2n^3 -> n^3 -
空间复杂度
程序空间计算因素:
(1)寄存本身的指令
(2)常数
(3)变量
(4)输入
(5)对数据进行操作的辅助空间
在考量算法的空间复杂度,主要考虑算法执行时所需要的辅助空间
-