第一章 绪论
目录
基本概念和术语
- 数据:是对信息的一种符号表示。
- 数据元素:是数据的基本单位。(在计算机程序中通常作为一个整体进行考虑和处理)
- 数据项:是数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。
- 数据对象:是性质相同的数据元素的集合。是数据的子集。
数据结构(定义1)
是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构(定义2)
按某种逻辑关系组织起来的一批数据 应用计算机语言并按一定的储存表示方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
*是带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系。
数据结构包括三个方面:数据的逻辑结构、数据的存储结构、对数据所施加的运算(操作)。
三个方面关系:
- 数据的逻辑结构:独立于计算机,是数据本身所固有的。
- 数据的存储结构:是逻辑结构在计算机存储器中的映像,必须依赖于计算机。
- 运算:指所施加的一组操作总称。运算的定义直接依赖于逻辑结构,但运算的实现必须依赖与存储结构。
逻辑结构-划分方法:
- 集合:
结构中的数据元素除了同属于一种类型外,别无其他关系。
- 线性结构
结构中的数据元素之间存在一对一的关系。
→a1→a2→a3→a4→
- 树型结构
一对多关系
- 图状结构或网状结构
多对多
存储结构(又称物理结构):
数据结构在计算机中的表示(映像)
四种基本的存储方法:
- 顺序存储方法(顺序存储结构)
- 链式存储方法(链式存储结构)
- 索引存储方法
- 散列存储方法
*同一种逻辑结构可采用不同的存储方法(以上四种之一或组合),这主要考虑的是运算方便及算法的时空要求。
算法
概念
(1)算法是对特定问题求解步骤的一种描述,算法是指令的有序列表,其中每一条指令表示一个或多个操作。
(2)算法的五个特性:有穷性、确定性、可行性、输入、输出。
(3)算法设计的要求:正确性、可读性、健壮性(具有容错处理)、高效性(效率与存储量需求)
算法的描述和实现
描述:可采用自然语言、数学语言或约定的符号语言。
实现:必须借助程序设计语言提供的数据类型及其运算。
算法分析
(1)时间复杂度
1.时间频度:一个算法中语句执行次数称为语句频度或时间频度。记为T(n)。
2.时间复杂度:??????记为O(f(n))