基本概念:
数据:
data 计算机中指的是能输入到计算机中并被计算机程序处理的符号的总称。比如 图像、声音等都可以在进行编码后被称为数据,再在计算机中进行处理。
数据元素:
data element 数据的基本单位,数据元素可由多个数据项(data item)组成。我们可以理解为一个书的目录,目录作为数据元素,而目录中的信息作为数据项(data item)
数据元素之间的逻辑关系称为数据的逻辑结构
数据对象:
data object 是性质相同的数据元素的集合。是数据的一个子集。比如我们把生物作为数据,生物分为植物、动物。动物中又有犬类、猫科等等。其中犬类、猫科就是一个数据对象。
数据结构:
相互之间存在关系的数据元素的集合。基本结构:集合、线性结构、树形结构、图形结构或网状结构。
- 集 合 :关系单一,就只是同属一个集合。就像所有人随机在一个大广场一样。
- 线性结构:数据元素中存在一个对一个的关系,就像排队。
- 树形结构:数据元素存在一个对一个或多个的关系,就像树枝分叉
- 图像结构:数据元素存在多个对多个的关系,就像蜘蛛网。
存储结构:
也叫物理结构:数据结构在计算机中的表示(映射)。包含数据元素的表示和关系的表示。
计算机中信息是以二进制(高低电平)来表示。一个数据元素用一串二进制位组合形成的位串来表示,称该串位为 元素或结点(他们是数据元素在计算机中的映像)。而数据元素由数据项组成,数据项的子串称为数据域。
数据元素之间的关系在计算机中表示方法:顺序映像(顺序存储结构)和非顺序映像(链式存储结构)。
- 顺序结构:在存储器中用相邻的存储单元去存储数据。
- 链式结构:用指针(point)来表示数据元素之间的逻辑关系。指针中存储地址。
数据类型:
定义变量的时候都会规定一个数据类型。他就是一个值的集合和定义在这个值集上的一组操作的总称。
- 原子类型:它的值是不可分解的,C语言中的基本类型(int、char、num)、指针、空类型
- 结构类型:由若干成分按某种结构组成的。可分解的。
抽象数据类型:和数据类型是一个概念,不同的处理器中定义的数据是不同,但是数据特性相同。将它们的数学特性抽象出来。
- 表示:(D,S,P) D是数据对象、S是D上的关系集、P是对D的基本操作集。
按照下面格式定义抽象数据类型:
ADT 抽象数据类型名{
数据对象:{数据对象的定义}
数据关系:{数据关系的定义}
基本操作:{基本操作的定义}
}ADT 抽象数据类型名
算法
算法是对特定问题求解步骤的一种描述。是指令的有限集合
五个重要特性:
- 有穷性:有限时间、有限步骤完成
- 确定性:结果一定
- 可行性:算法描述的操作都可以实现
- 输 入:
- 输 出:
设计算法的要求:
- 正确性:能满足问题的需求
- 可读性:算法是人看的。
- 健壮性:对于各种情况都可以应对
- 效率和低存储量需求:执行时间和执行时所需的最大存储量
算法的度量:
度量程序的执行时间的方法
- 事前分析统计:看循环。
- 事 后 统 计:执行完程序,看时间,不常用。
函数F(n)的算法时间量度:T(n)=O(f(n)), n越大时间就越大
算法所需存储空间的量度:S(n)=O(f(n)),
估计时都已最坏情况估计。