注:总结自高教版《全国计算机等级考试二级教程 公共基础知识》
算法
算法的基本概念
算法是指解题方案的准确而完整的描述。作为一个算法,一般应具有以下几个基本特征:
- 可行性:算法的可行性包括以下两个方面:1.算法中的每一个步骤必须能够实现;2.算法执行的结果要能够达到预期的目的。
- 确定性:算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。
- 有穷性:算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
- 拥有足够的情报:一个算法是否有效,还取决于为算法所提供的情报是否足够。
综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
算法的基本设计方法
- 列举法
- 归纳法
- 递推
- 递归
- 减半递推技术
- 回溯法
算法复杂度
算法的时间复杂度
所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
分析算法工作量的方法有:
- 平均性态
- 最坏情况复杂性
算法的空间复杂度
一个算法的空间复杂度,一般是执行这个算法所需要的内存空间。
数据结构的基本概念
所谓数据处理,是指对数据集合中的各元素以各种方式进行的运算,包括插入,删除,查找,更改等运算。简单地说,数据结构是指相互有关联的数据元素的集合。
一般情况下,在具有相同特征的数据元素集合中,各个元素之间存在有某种特殊关系(即联系),这种关系反映了该集合中的数据元素所固有的一种结构。在数据处理领域中,通常把数据元素之间的这种固有关系简单地用前后件关系(或直接前驱与直接后继关系)来描述。一般来说,数据元素之间的任何关系都可以用前后件关系来描述。
数据的逻辑结构
所谓数据结构实际上就是指数据元素之间的前后件关系。一个数据结构应包含以下两方面的信息:
- 表示数据元素的信息
- 表示各数据元素之间的前后件关系
其中数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关。因此,上面所述的数据结构实际上是数据的逻辑结构。
所谓的数据的逻辑结构,是指反映数据元素之间逻辑关系的数据结构。
数据的存储结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系。
数据结构的图形表示
在数据结构的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据节点,简称节点;对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。
在数据结构中,没有前件的结点称为根结点;没有后件的结点称为终端结点,也称为叶子结点。
线性结构与非线性结构
如果一个非空的数据结构满足下列两个条件:
- 有且只有一个根结点;
- 每个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。线性结构又称线性表。
注:在一个线性结构中插入或删除任何一个结点后还应是线性结构。