算法的空间复杂度是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、 输入的初始数据所占的存储空间
以及算法执行过程中所需要的额外空间。 其中额外空间包括算法程序执行过程中的工作单元
以及某种数据结构所需要的附加存储空间。 如果额外空间量相对于问题规模来说是常数, 则
称该算法是原地( in place)工作的。在许多实际问题中,为了减少算法所占的存储空间,
通常采用压缩存储技术,以便尽量减少不必要的额外空间。
1.2 数据结构的基本概念
1.2.1 数据结构的定义
数据结构是计算机科学与技术领域广泛使用的一个基本术语,用来反映数据的内部构
成。在给出数据结构的定义之前,我们先弄清楚几个概念。
数据( data):是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中
并被计算机程序处理的符号的总称。
数据元素( data element):是数据的基本单位,在计算机程序中通常作为一个整体进行
考虑和处理。
数据对象( data object):是性质相同的数据元素的集合,是数据的一个子集。
简单地说, 数据结构是指相互关联的数据元素的集合, 即数据的组织形式。 所谓结构,
就是指数据元素之间的前后件关系(或称直接前驱与直接后继关系) 。
例如, 在考虑一日三餐的时间顺序关系时, " 早餐 " 是" 午餐 " 的前件 (或直接前驱) ,而"
午餐 " 是" 早餐 " 的后件(或直接后继) ;同样, "午餐 " 是" 晚餐 " 的前件, " 晚餐 " 是" 午餐 " 的后
件。
又例如,在考虑学历的顺序关系时, " 小学 " 是" 初中 " 的前件,而 " 初中 "是小学的后件。
同样, " 初中 " 是" 高中 " 的前件, " 高中 " 是" 初中 " 的后件。
前后件关系是数据元素之间的一个基本关系, 但前后件关系所表示的实际意义随具体对
象的不同而不同。一般来说,数据元素之间的任何关系都可以用前后件关系来描述。
数据结构的两个要素 --" 数据 " 和"结构 " 是紧密联系在一起的, " 数据 " 是有结构的数据,
而不是无关联的、松散的;而 " 结构 " 就是数据元素间的关系,是由数据的特性所决定的。
数据结构作为计算机的一门学科,主要研究和讨论以下三个方面:
(1)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构;
(2)在对数据元素进行处理时, 各数据元素在计算机中的存储关系, 即数据的存储结构;
(3)对各种数据结构进行的运算。
讨论以上问题的目的是为了提高数据处理的效率, 即提高数据处理的速度以及尽量节省
在数据处理过程中所占用的计算机存储空间。
1.2.1.1 数据的逻辑结构
由数据结构的定义可知,一个数据结构应包含以下两方面信息:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
在此定义中, 并没有考虑数据元素的存储, 所以上述的数据结构实际上是数据的逻辑结
构。
数据的逻辑结构是对数据元素之间的逻辑关系的描述, 它可以用一个数据元素的集合和
评论0
最新资源