数据结构基本概念
基本概念和术语
- 数据:数据是信息的载体,信息是数据的内涵
- 数据元素:数据的基本单位,一个数据元素可由若干数据项组成
- 数据项:数据项是构成数据元素不可分割的最小单位
- 数据对象:数据对象是具有相同性质数据元素的集合,是数据的子集
- 数据类型:数据类型是一个值的集合以及定义在此集合上一组操作的总称
数据类型=数据元素+数据操作
- 原子类型 eg:int
- 结构类型 eg:结构体
- 抽象数据类型ADT:只需关心逻辑结构,无需关心具体实现、存储结构
ADT 抽象数据类型
{
数据对象(数据对象的定义)
数据关系(数据关系的定义)
基本操作(基本操作的定义)
}ADT 抽象数据类型名
- 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合
数据结构 = 数据元素 + 数据关系
数据结构三要素
逻辑结构
集合:数据元素同属一个集合,别无其他关系
线性结构:一对一
树:一对多
图:多对多
物理/存储结构
运算
运算的定义依赖于逻辑结构,运算的实现依赖于存储结构
算法及其算法评价
算法基本概念
算法是对特定问题求解步骤的描述
把数据结构提供的基本操作/运算的有序组合运用去解决特定问题即算法
算法的五个特性:
-
有穷性
-
确定性
相同输入得到相同输出。 -
可行性
算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。 -
输入
一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。 -
输出
一个算法有一个或多个输出,这些输出是与输入有着某种特定关系的量。
好算法特质
- 正确性。算法应能够正确地解决求解问题。
- 可读性
- 健壮性。输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。
- 高效率与低存储量需求。即时空复杂度低。
算法效率
时间复杂度T(n)
空间复杂度S(n)
算法原地工作是指算法所需的辅助空间为常量,即S(n)=O(1)