一、基本概念和术语
- 数据
- 数据元素(数据的基本单位,由若干数据项组成)
- 数据对象(具有相同性质的数据元素的集合,是数据的子集)
- 数据类型(一个值的集合和定义在此集合上的一组操作的总称):原子类型、结构类型、抽象数据类型。
- 数据结构(相互之间存在一种或多种特定关系的数据元素的集合),如先后关系。
二、数据结构三要素
算法的设计取决于逻辑结构,算法的实现取决于存储结构。
- 逻辑结构
- 存储结构
- 数据的运算
- 逻辑结构与数据存储无关,独立于计算机。 包括线性结构和非线性结构。线性结构主要指“一对一”,典型是线性表,及受限线性表(队列、栈)、推广线性表(数组、多维数组);非线性结构主要指“多对多、一对多”,有集合、树形结构、图状结构等。
- 存储结构 是数据结构在计算机中的表示(映像),也叫物理结构。它包括数据元素的表示(值)和关系的表示。存储结构包括:顺序存储、链式存储、索引存储和散列存储。
- 数据运算包括数据的定义和实现。定义——逻辑结构——功能,实现——存储结构——具体操作。
三、算法和算法评价
1、算法概念:对特定问题的求解步骤的一种描述,是指令的有限序列。
2、算法的特性:
- 有穷性;
- 确定性;
- 可行性;
- 输入;
- 输出。
3、好的算法还应考虑以下特性:
- 正确性;
- 可读性;
- 健壮性;
- 高效率与低存储。
四、算法效率度量
1、时间复杂度
(1)算法中基本运算的执行次数的数量级作为该算法的时间复杂度
是问题规模n的函数
(2)最坏时间复杂度、平均时间复杂度、最好时间复杂度。
(3)计算时,有加法规则和乘法规则。
2、空间复杂度
算法所需的空间,只需要分析除输入和程序之外的额外空间。
是问题规模n的函数