数据:是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。例如:学生。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。例如:学生信息。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如:学生信息中的学号。
数据对象: 是性质相同的数据元素的集合。例如:学生信息表。
逻辑结构:也称为狭义的数据结构,含有两个要素:数据元素、关系。有四种类型:集合结构、线性结构、树结构、图结构或网状结构。逻辑结构分为线性结构与非线性结构。
存储结构:也称为物理结构。把数据对象存储到计算机时,通常要求既要存储各数据元素之间的逻辑关系,又要存储元素之间的逻辑关系,数据元素在计算机内用一个结点来表示。存储结构分为顺序存储结构和链式存储结构。
数据类型:数据类型是一个值的集合和定义在这个值集上的一组操作的总称。例如,C语言中的整型变量,其值集为某个区间上的整数,定义在其上的操作为加、减、乘、除和取模等算术运算;而实型变量也有自己的取值范围和相应运算,比如取模运算是不能用于实型变量的。
抽象数据类型:一般指由用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,具体包括三部分:数据对象、数据对象上关系的集合以及对数据对象的基本操作的集合。 抽象数据类型的定义格式如下:
ADT 抽象数据类型名 { 数据对象:< 数据对象的定义 > 数据关系:< 数据关系的定义 > 基本操作:< 基本操作的定义 > } ADT 抽象数据类型名
基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以 “&” 打头,除可提供输入值外,还可返回操作结果。
算法是为了解决某类问题而规定的一个有限长的操作序列。满足以下特性: (1)有穷性。一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。 (2)确定性。对于每种情况下所应执行的操作,在算法中都有确切的规定,不会产生二义性。 (3)可行性。算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。 (4)输入。一个算法有零个或多个输入。 (5)输出。一个算法有一个或多个输出。
(1)正确性。在合理的数据输入下,能够在有限的运行时间内得到正确的结果。 (2)可读性。便于人们理解和互相交流。 (3)健壮性。输入非法数据也能做出良好的反应。 (4)高效性。时间复杂度和空间复杂度尽量的低。
影响算法的时间复杂度的最主要因素是问题规模,一般用整数 n 表示,n 越大算法的执行时间越长。在计算算法的时间复杂度时,忽略所有低次幂项和最高幂次项的系数。
平均时间复杂度 = (最好时间复杂度 + 最坏时间复杂度)/ 2