一、什么是数据结构
1.(严版)定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
“数据结构包括逻辑结构和存储结构两个层次”
- 逻辑结构:集合、线性结构、树形结构、图形结构
- 数据的存储结构是针对计算机来说的,指的是数据的逻辑结构在计算机中的表示,也就是说这些数据存储在计算机中到底是怎么存储的
- 存储结构:顺序、链式、索引、散列
- 数据的 逻辑结构 在计算机中的表示
二、逻辑结构:
数据的逻辑结构是从逻辑关系上描述数据,与数据的存储无关,是独立于计算机的
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型
数据的逻辑结构两个要素:数据元素、关系
2.1.1数据的逻辑结构
- 集合结构
例如:确定一名学生是否为班级成员,只需将班级看作一个集合 - 线性结构
数据元素存在一对一的关系 - 树结构
数据元素存在一对多的关系 - 图结构或者网状结构
数据元素存在多对多的关系
三、存储结构(物理结构):
数据对象在计算机中的存储表示成为数据的存储结构,也称为物理结构
数据元素有两种基本的存储结构:顺序存储、链式存储
四、算法和算法分析
算法的定义:算法是为了解决某类问题而规定的一个有限长的操作序列
4.1算法的五个重要特征:
- 有穷性:
一个算法必须总在执行又穷步骤后结束,且每一步都是在有穷时间内完成 - 确定性:在算法中每条指令都必须有确切的规定,不会产生二义性,对于相同的输入只能得到相同的输出
- 可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行的有限次来实现
- 输入:一个算法有 “零个”或 ”多个输入“
- 输出:一个算法有“一个”或“多个输入”
4.2评判算法优劣的基本标准
- 正确性
- 可读性
- 健壮性
- 高效性:包括时间和空间两方面
4.3算法时间复杂度大小关系
4.4时间复杂度的表示方法
T(n)是不是常数:
是:时间复杂度为O(1)
否:时间复杂度为O(保留T(n)的最高次项并且去掉最高次项的系数)
eg.T(n)=5n(三次方)+66n(平方). == O(n的三次方)