数据结构的基本概念和数据
数据
数据是描述客观事物的符号集合,比如描述一张网页。
数据元素
数据元素是组成数据、有一定意义的基本单位。
数据结构
数据结构是指(相互存在一种或多种特定关系的)数据元素的集合。
数据结构的逻辑结构和物理结构
数据结构是计算机存储、组织数据的方式。数据结构包括数据的逻辑结构和数据的物理结构。
逻辑结构
数据元素之间的相互关系。
- 集合结构
数据元素除了同属于一个集合外没有任何关系。 - 线性结构
线性结构中的数据元素是一对一的关系。 - 树形结构
数据元素之间存在一对多的层次关系。 - 图形结构
数据元素是多对多的关系。
物理结构
数据的逻辑结构(即存在相互关系的数据元素)在计算机中的存储结构形式。
- 顺序存储结构
把数据元素放在地址连续的存储单元里。数组就是一种顺序存储结构。 - 链式存储结构
把数据元素放到任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。数据元素的存储关系并不能反映其逻辑关系,因此需要用指针存放数据元素的地址,这样通过地址就可以找到相关数据元素的位置。
逻辑结构是面向问题的,物理结构是面向计算机的,其基本目标就是讲数据及逻辑关系存储到计算机的内存中。
算法的定义
解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
算法的特性
- 输入输出,至少有一个输入。
- 有穷性,不会出现无限循环。
- 确定性,每一个步骤有确定含义,无二义性。
- 可行性,每一个步骤都能通过有限次数完成。
算法的设计要求
- 正确性
- 可读性
- 健壮性,输入数据不合法时,算法也能做相关处理。
- 高效率和低存储量
算法时间复杂度
语句总的执行次数T(n)是关于问题规模n的函数,算法时间复杂度(O)描述该算法的运行时间。
推导算法时间复杂度
只保留T(n)函数的最高阶项。