绪论
基本概念
1.数据
数据是信息的载体,是描述客观事物属性,能够输入到计算机中并被计算机程序识别和处理的符号的集合
2.数据元素
数据的基本单位
由数据项组成,数据项是最小不可分割的最小单位
3.数据对象
性质相同的数据元素的集合,是数据的一个子集
4.数据类型
数据类型是一个值的集合和定义在此集合上一组操作的总和
原子类型:不可再分
结构类型:可以分解若干
抽象数据类型(ADT):抽象数组组织和相关操作
数据对象,数据关系,基本操作集表示抽象数据类型
5.数据结构
数据元素相互之间的关系为结构
数据结构的三方面
逻辑结构,存储结构,数据运算
一个算法的设计取决于逻辑结构,实现依赖于存储结构
逻辑结构
数据元素之间的逻辑关系,与存储无关
要素
数据元素和关系
1.集合
同属于一个集合
2.线性结构
一对一关系
3.树形结构
一对多
4.图形结构或网状结构
存储结构
数据结构在计算机中的表示(映像),也为物理结构
1.顺序存储
存储物理位置相邻
2.链式存储
存储结构位置未必相邻
3.索引存储
目录
4.散列存储
关键字算出元素物理地址
算法和算法的复杂度
算法特征
1.有穷性,有限步骤
2.确定性,不存在二义性
3.可行性,理论可行
4.输入输出,零个或多个输入,一至多个输出结果
算法的优劣
正确性
可读性
健壮性
高效性
时间复杂度
算法执行时间增长的快慢
T(n)为数量级,f(n)基本运算频度
T(n) = O(f(n)),大O记法,最坏情况的时间复杂度
空间复杂度
算法所需空间的增长的快慢
空间复杂度指算法运行过程中所使用的辅助空间的大小
辅助空间相对于输入量是常数,为原地工作
S(n) = O(g(n))
时间复杂度大小关系
Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n(2))<Ο(n(3))<Ο(2(n))
计算复杂度
复杂度是关于增长率,忽视常数项
循环段基本操作语句的执行次数