绪论
数据类型
原子类型
- 原子类型不可再分(int,char,string)
结构类型
- 结构类型可再分
抽象数据类型(ADT)
- 定义:数学模型以及定义在该模型上一组操作,它的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用
- 三元组:数据对象,数据关系,基本操作集
原子类型与结构类型的区别
- 原子类型不可再分结构类型可再分
数据结构
- 数据结构的基本单位为数据元素,一个数据元素可以由若干个数据项组成,数据项是构成数据元素的不可分割的最小基本单位
!数据元素可以由类型互不相同的数据元素构成,但线性表中的元素必须是相同类型
- 数据结构是研讨数据的逻辑结构和物理结构,以及他们之间的相互关系,并对这种结构定义相对应的运算,设计出相应的算法
- 由逻辑结构,存储结构,数据运算构成(三要素)
逻辑结构
- 由线性结构,非线性结构构成
!数据的逻辑结构是指数据元素之间的逻辑关系的总体,而非数据项之间的逻辑关系
线性结构
- 具有线性关系,除了第一个与最后一个元素之外每一个元素都只有一个前驱与后继
非线性结构
- 至少存在一个元素含有两个或两个以上的前驱或后继
存储结构
- 是物理结构和逻辑结构在计算机上的映射,分为顺序存储,链式存储,索引存储和散列存储四种
- 数据的物理结构包括数据元素的表示和数据元素之间关系的表示
顺序存储
- 顺序表,数组实现
链式存储
- 链表,指针实现
索引存储*
- 操作系统和文件目录的索引
散列存储*
- 哈希查找表
数据运算
- 运算的定义上是针对逻辑结构的,实现上是针对存储结构的
算法五大特性
- 有穷性,确定性,可行性,输入,输出
!一个算法可以没有输入,但至少有一个输出
算法效率度量
空间复杂度
- 交换 \(a\), \(b\) 空间复杂度为 \(O(1)\),也称作原地工作,即算法所需的辅助空间是常量
时间复杂度
- 计算一个算法执行了多少次
\[O(1)<O(\log_2n)<O(n)<O(n\log_2n)<O(n^2)<O(2^n)<O(n!)<O(n^n)
\]
!平均时间复杂度一般情况下等于最坏情况下的时间复杂度

浙公网安备 33010602011771号