第一章 绪论
一、什么是数据结构
二、基本概念和术语
1.数据与数据元素
-
数据
是对客观事务的符号表示,它能被计算机识别、存储和加工处理。数据元素:由若干数据项组成,是数据的基本单位,有时也称为元素、结点、顶点或记录。
数据项:是最小标识单位,有时也称为字段、域或属性。
-
数据结构
是指数据元素之间的相互关系,即数据的组织形式。包括三方面
(1)数据元素之间的逻辑关系
(2)数据元素及逻辑关系在计算机存储器内的表示方式
(3)数据运算,即对数据施加的操作
2.数据的逻辑结构和存储结构
从逻辑上讲
(1)集合结构
(2)线性结构
(3)树形结构
(4)图结构
从物理实现上讲
(1)顺序结构
(2)链式结构
(3)索引结构
(4)散列结构
3.数据的运算
数据运算是对数据施加的操作
常见基本运算:检索(查找)、插入、删除、更新、排序等
运算是在逻辑结构上定义,在存储结构上实现。
4.数据类型与抽象数据类型
-
数据类型
按“值”可否分解,分为两类
(1)原子类型:如C语言的基本类型、指针类型和空类型
(2)结构类型:如C语言的数组类型、结构类型等
三、算法
- 五个特性
(1)有穷性:步骤有限,且每步都可以在有限时间内完成。
(2)确定性:算法的每条指令必须有确切的含义,不能有二义性。
(3)可行性:算法是可行的,可以通过已经实现的基本运算的有限次来执行。
(4)输入:一个算法有零个或多个输入。
(5)输出:一个算法有一个或多个输出。
四、算法分析
1. 算法评价
算法的评价指标
(1)正确性:第一层 没有语法错误;第二层 几组数据达到要求;第三层 苛刻并带有刁钻性的几组数据满足规格要求;第四层 一切合法的数据满足规格要求。
(2)可读性:便于阅读、交流和调试。
(3)健壮性:当输入非法数据时i,做出相应反应或处理,不会产生莫名其妙的结果。
(4)时空效率:**时间复杂度、空间复杂度** 用时尽可能少,占用存储空间尽可能少。
1. 算法性能分析与度量
时间复杂度:指算法运行从开始到结束所需要的时间,记作:Y(n)=O(n)。
常见时间复杂度:常数阶O (1)、对数阶O (log2n)、线性阶O (n)、 线性对数阶O (nlog2n)、平方阶O (n2)、 立方阶O (n3)、指数阶O (2n)。
空间复杂度:算法所需存储空间,记作:S(n)=O(n)。
算法效率考虑平均复杂度和最坏复杂度