第一章知识点笔记
重点
- 基本术语
- 抽象数据类型
- 算法优劣的评价标准
- 数据结构的学习方法
抽象数据类型ADT
ADT=(D,S,P)
格式:{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
} 名称
基本概念和术语
数据——所有能输入到计算机的描述客观事物得到符号
分为数值性数据和非数值性数据
数据元素——数据的基本单位,也称结点或记录——行
数据项——有独立含义的数据最小单位,也称域——列
数据对象——相同特性数据元素得到集合,是一个子集
数据结构——相互之间存在的一种或多种关系的数据元素的集合
数据结构
逻辑结构,存储结构(物理结构),操作(运算,行为)
逻辑结构划分
第一种
1)线性结构:有且仅有一个开始和终端节点,并且所有节点最多一个前趋和后继(线性表,栈,队列,串)
2)非线性结构:一个结点可能有多个直接前驱和直接后缀:树,图
第二种
1)集合:除同一个集合以外无其它关系
2)线性结构:一个对一个,如线性表,栈,队列
3)树形结构:一个对多个,如树
4)图形结构:多个对多个,如图
存储结构划分
顺序存储结构——借助元素在存储器中的相对位置表示数据
链式存储结构——借助指示元素的指针表示数据元素间的逻辑关系
索引存储结构——字典中单词存储关系
散列存储结构——地址与散列函数之间建立的一种映射
算法和算法分析(重点)
定义:一个有穷的指令集,未解决某类问题而规定的一种有限长的操作序列。
特性
- 输入(0个或多个)
- 输出(1个或多个)
- 确定性(每步定义都是确切的,无歧义的)
- 有穷性(算法应在执行有穷步后结束)
- 可行性(所有操作都可以通过已经实现的基本操作运算执行有限次来实现)
评价
- 正确性
- 可读性
- 健壮性(鲁棒性)
- 高效性
算法效率的度量
时间复杂度和空间复杂度
时间复杂度分为事后统计(一般不用),事前分析估计(大O法,语句频度法)
空间复杂度——算法在内存中所占的空间
组成部分:算法的输入/输出数据占用的空间,算法的输入/输出数据占用的空间,算法运行过程中临时占用的辅助空间
若空间量依赖于输入,按最坏情况决定