1、数据结构的基本概念
1、1 基本概念和术语
数据结构的基本概念:
在计算机科学中,数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。在任何问题当中,数据元素都不是孤立存在的,他们之间存在着某种关系,这种数据元素相互之间的关系称为结构。数据结构包括三方面内容:逻辑结构、存储结构和数据的运算。
数据结构的基本术语:
数据:
数据是信息的载体,是能够被计算机识别、存储和加工处理的符号的集合(描述客观事物属性的数、字符等)。数据类型广泛,包括数值型(如整数、实数)和非数值型(如文字、图像、声音等)。数据是计算机程序加工的原料。
数据元素:
数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。(例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成)。
数据对象:
数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据类型:
数据类型是一个值的集合和定义在此集合上的一组操作的总称。有以下几种数据类型:
1、原子类型。值不可再分的数据类型。
2、结构类型。值可以再分解为若干成分的数据类型。
3、抽象数据类型。一个数学模型及定义在该数学模型上的一组操作。它通常是对数据的某种抽象,定义了数据的取值范围及结构形式,以及对数据操作的集合。
逻辑结构:
数据元素之间的逻辑关系,也称为数据的逻辑结构。它是从具体问题抽象出来的数学模型,与数据的存储无关,独立于计算机。逻辑结构分为线性结构和非线性结构。
存储结构:
存储结构是指数据结构在计算机中的表示又称为映像,也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是用计算机语言实现的逻辑结构,它依赖于计算机语言。数据的存储结构主要有顺序存储、链式存储、索引存储和散列存储。
数据操作:
对数据元素进行运算或处理的操作,如创建、插入、删除、查找、修改和遍历等。数据操作定义在数据的逻辑结构上,其实现依赖于数据的存储结构。
常见数据结构:
数组、堆、栈、队列、链表、树、图。
2、算法和算法评价
2、1 算法的基本概念
算法的概念:
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。
算法的五个特性:
1、有穷性。一个算法必须总在执行有限步之后结束,且每一步都可在有限时间内完成。
2、确定性。算法的每一个步骤都必须有明确的定义,不允许存在二义性。对于相同的输入只能得到相同的输出。
3、可行性。算法中的每一个步骤都必须可行,即每一步都能通过执行有限次数的基本操作来实现。
4、输入。一个算法有零个或多个输入。
5、输出。一个算法至少具有一个或多个输出。
2、2 算法效率的度量
算法效率的度量是通过时间复杂度和空间复杂度来描述的。
1、时间复杂度
算法中基本运算的执行次数的数量级作为该算法的时间复杂度。
最坏时间复杂度是指在最坏情况下,算法的时间复杂度。
平均时间复杂度是指在所有可能输入实例在等概率出现的情况下,算法的期望运行时间。
最好时间复杂度是指在最好的情况下,算法的时间复杂度。
一般总是考虑在最坏情况下的时间复杂度,以保证算法的运行时间不会比它更长。
2、空间复杂度
算法的空间复杂度定义为该算法所需要的存储空间,他是问题规模n的函数。若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的额外空间。