- 1
- 0
- 约3.77万字
- 约 71页
- 2018-03-13 发布于江苏
- 举报
计算机级公共基础
第一章 数据结构与算法
一、内容要点
(一)算法
1.算法的基本概念
算法是指解题方案的准确而完整的描述。即是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,没有二义性,同时该规则将在有限次运算后可终止。
1)算法的基本特征
(1)可行性
由于算法的设计是为了在某一个特定的计算工具上解决某一个实际的问题而设计的,因此,它总是受到计算工具的限制,使执行产生偏差。
如:计算机的数值有效位是有限的,当大数和小数进行运算时,往往会因为有效位数的影响而使小数丢失,因此,在算法设计时,应该考虑到这一点。
(2)确定性
算法的设计必须是每一个步骤都有明确的定义,不允许有模糊的解释,也不能有多义性。
例如,一个实际的问题,小宝和萍萍共有12个苹果,小宝比萍萍多4个,请问小宝和萍萍各有几个苹果?这个问题,我们可以立一个方程组x+y=12和x-y=4来求解,要求x和y的值,公式是正确的,但如何让计算能够进行计算,我们的算法不能把公式直接输进去,而应该设计出解题的步骤和过程。
即设计的算法是计算工具所能够正常解决问题的过程。
(3)有穷性
算法的有穷性,即在一定的时间是能够完成的,即算法应该在计算有限个步骤后能够正常结束。
例如,在数学中的无穷级数,在计算机中只能求有限项,即计算的过程是有穷的。
(4)拥有足够的情报
算法的执行与输入的数据和提供的初始条件相关,不同的输入或初始条件会有不同的输出结果,提供准确的初始条件和数据,才能使算法正确执行。
2)算法的基本要素
一是数据对象的运算和操作,二是算法的控制结构。
(1)算法中对数据的运算和操作
算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。即算法是计算机所能够处理的操作所组成的指令序列。
(2)算法的控制结构
算法的功能不仅取决于所选用的操作,而且还与各操作之间的顺序有关。
在算法中,操作的执行顺序又称算法的控制结构,一般的算法控制结构有三种:顺序结构、选择结构和循环结构。
在算法描述是,有相关的工具对这三种结构进行描述,常用的描述工具有:流程图、N-S结构图和算法描述语言等。
3)算法设计的基本方法
为用计算机解决实际问题而设计的算法,即是计算机算法。
通常的算法设计有如下几种:
(1)列举法
(2)归纳法
(3)递推
(4)递归
(5)减半递推技术
(6)回溯法
2.算法复杂度
算法的复杂度包括时间复杂度和空间复杂度。
1)时间复杂度
即实现该算法需要的计算工作量。算法的工作量用算法所执行的基本运算次数来计算。
2)算法的空间复杂度
指要执行该算法所需要的内存空间。算法所占用的内存空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间,如执行过程中工作单元以及某种数据结构所需要的附加存储空间等。
(二)数据结构的基本概念
1.概念
数据结构是指相互有关联的数据元素的集合。它包括以下两个方面:
表示数据元素的信息
表示各数据之间的前后件关系
1)数据的逻辑结构
是指反映数据元素之间的逻辑关系的数据结构。
数据的逻辑结构有两个要素:
数据元素的集合,记作D
数据之间的前后件关系,记作R
则数据结构B=(D,R)
2)数据的存储结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,或数据的物理结构。
即数据存储时,不仅要存放数据元素的信息,而且要存储数据元素之间的前后件关系的信息。
通常的数据存储结构有顺序、链接、索引等存储结构。
2.数据结构的图形表示
数据结构的图形表示有两个元素:
中间标有元素值的方框表示数据元素,称为数据结点
用有向线段表示数据元素之间的前后件关系,即有向线段从前件结点指向后件结点
注意:在结构图中,没有前件的结点称为根结点,没有后件的结点称为终端结点,也称叶子结点。
3.线性结构与非线性结构
如果一个数据元素都没有,该数据结构称为空数据结构;在空数据结构中插入一个新的元素后数据结构变为非空数据结构;将数据结构中的所有元素均删除,则该数据结构变成空数据结构。
如果一个非空的数据结构满足如下条件,则该数据结构为线性结构:
有且只有一个根结点
每一个结点最多只有一个前件,也最多只有一个后件
线性结构又称线性表。
注意:在线性结构表中插入或删除元素,该线性表仍然应满足线性结构。
原创力文档

文档评论(0)