文章目录
- 一、数据结构的基本概念
- 1.1 数据结构的研究内容
- 1.2 数据类型和抽象数据类型
- 1.3 算法和算法分析
- 1.3.1 算法的时间复杂度
- 1.3.2 算法时间效率的比较
- 1.4 知识回顾
一、数据结构的基本概念
1.1 数据结构的研究内容
1.2 数据类型和抽象数据类型
抽象数据类型(ADT)定义举例:Circle的定义
ADT 抽象数据类型名{Data数据对象的定义数据元素之间逻辑关系的定义Operation操作1初始条件操作结果描述操作2......操作n......
}ADT 抽象数据类型名ADT Circle{数据对象:D={r,x,y|r,x,y均为实数}数据关系:R={<r,x,y>|r是半径,<x,y>是圆心坐标}基本操作:Circle(&C,r,x,y)操作结果:构造一个圆。double Area(C)初始条件:圆已存在。操作结果:计算面积。double Circumference(C)初始条件:圆已存在操作结果:计算周长......
}ADT Circle
如何处理杂乱无章且多样化的数据:
数据元素:数据中的个体被称为数据元素。
数据对象:性质相同的数据元素组成的集合。
数据结构:数据元素加上数据元素之间的关系,就形成了数据结构。
逻辑结构:数据结构的逻辑模型。主要有集合结构,线性结构,树形结构,图状结构。
存储结构:数据结构映射到内存的表示方式。主要有顺序结构,链式结构,索引结构和散列结构
抽象数据类型:数据结构加上操作后就形成了抽象数据类型,主要包括数据对象,数据关系,基本操作。
上述概念总结如下图所示:
1.3 算法和算法分析
1.3.1 算法的时间复杂度
对于复杂的算法,可以将它分成几个容易估算的部分,然后利用大O加法法则和乘法法则,计算算法的时间复杂度:
- a)加法规则
T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n))) - b)乘法规则
T(n)=T1(n)*T2(n)=O(f(n))*O(g(n))=O(f(n)*g(n))
1.3.2 算法时间效率的比较
设计好算法的过程:
- 1、在对具体问题进行分析时,我们提取出需要处理的数据对象和数据对象之间的关系,便得到了数据的逻辑结构。
- 2、根据数据的逻辑结构我们选择合适的存储结构。
- 3、数据存储完后根据算法的时间和空间复杂度选择合适的算法对数据进行处理。