计算机二级考试公共基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章基本数据结构与算法
1.1 算法
1. 算法的基本概念
算法的指解题方案的准确而完整的描述。作为一个算法,一般应具有的特征为:
1)可行性,针对实际问题设计的算法,考虑其可行性,应该能够得到满意的结果;
2)确定性,算法中的每一个步骤都必须是明确定义的,不允许有模掕两可的解释,也不允许有多义性;
3)有穷性,算法必须能在执行有限个步骤之后终止;
4)有零个或多个输入;
5)有一个或多个输入;
综上所述,算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的.明确的;这个运算顺序将在有限的次数下终止。
2. 算法复杂度
算法的复杂度主要包括时间复杂度和空间复杂度。
(1)算法的时间复杂度
算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量用算法在所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即
算法的工作量=f(n)
其中N是问题的规模。
例如,两个N阶矩阵相乘需要的基本算法次数为n3,即计算工作量为n3, 也就是时间复杂度为n3, 即
F(n)=O( n3)
(2) 算法的空间复杂度
算法的空间复杂度是指执行这个算法所需要的内存空间。
【例1.1】算法的时间复杂度是指()
A)执行算法程序所需要的时间B)算法程序的长度
C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数
答案:C
提示:2005年9月真题填空题第2题。2006年9月真题选择题第7题。2007年4月真题选择题第1题属该题的类似题目2007年4月真题选择题第11题考察算法的特征。
1.2 数据结构的基本概念
1. 数据结构的定义
数据结构是指反映数据元素之间关系的数据元素集合的表示。通俗地说,数据结构是指带有结构的数据元素的集合。
(1)数据的逻辑结构
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。
一个数据结构应包含以下两方面的信息:
1)表示数据元素的信息;
2)表示各数据元素之间的前后件关系。
(2)数据的存储结构
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序。链接。索引等。而采用不同的存储结构,其数据处理的效率是不同的,因此,在进行数据处理时,选择合适的存储结构是很重要的。
【例1.2 】与所使用的计算机系统无关的数据结构是()
A)存储B)物理C)逻辑D)线性表
答案:C
解析:线性表是一种具体逻辑结构,存储结构也称物理结构,只是逻辑结构是不依赖于计算机系统的。所以选项C为正确答案。
【例1.3 】数据的存储结构是指()
A) 存储在外存中的数据
B) 数据所占的存储空间量
C) 数据在计算机中的顺序存储方式
D) 数据的逻辑结构在计算机中的表示
答案:D
解析:数据的存储结构,也称为数据的物理结构,它指的是数据的逻辑结构在计算机存储空间的中的存放形式。只有选项D符合其定义,为本题的答案。
提示:2007年4月真题选择题第1题与该题相关。2007年9月真题选择题第5题考察程序的执行效率也数据结构的关系。
2. 数据结构的图形表示
【例1.4】下列叙述中,正确的是()
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
答案:D
解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,而采用不同的存储结构,其数据处理的效率是不同的。
提示:2007年9月真题选择题第6题属该题的类似题目。
数据结构除了可用二元关系表示外,还可以用直观的图形表示。在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素指的方框表示,一般称之为数据结点(简称为结点)。为了进一步表示各数据元素之间的前后件关系,对于关系中的每一个元组,用一条有向线段从前件结点指向后件结点。
3. 线性结构与非线性结构
根据数据结构中个数据元素之间前后件关系的复杂程度,一般将数据结构分成两大类:线性结构和非线性结构。
如果一个非空的数据结构满足下列两个条件:
1)有且只有一个根结点
2)每一个结点最多有一个前件,也最多有有一个后件。
则称该数据结构为线性结构。线性结构又称为线性表。如果一个数据结构不是线性结构。就称为非线性结构。
1.3 线性表及其顺序存储结构
1. 线性表的基本概念
线性表是有n(n≥0)个数据元素 a1,a2,...,a n组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件,即线性表或是一个空表。或者可以表示为:
( a1 ,a2 ,...a i ,..a n)
其中 a i(i=1,2,...n)是数据元素,通常也称其为线性表中的一个结点。
2. 线性表的顺序存储结构
线性表的顺序存储结构具有以下两个基本特点:
1)线性表中所有元素所占的存储空间是连续的;
2)线性表中个数据元素在存储空间中是逻辑顺序依次存放的。
由此可以看出,在线性表的存储结构中,其前后件两个元素在存储空间中的紧邻的,且前后元素一定存储在后件元素的前面。
3. 线性表的插入、删除运算
下面讨论线性表在顺序存储结构下的插入与删除的问题。
(1)线性表的插入运算
设长度为n的线性表为
(a1 ,a2 ,…,a i ,…,a n)
现要在线性表的第j个元素之前插入一个新元素b,插入后得到长度为n+1的线性表为(a′1,a′2,…,a′j,a′j+1,…,a′n,a′n+1)
则插入前后两个线性表中的元素满足如下关系:
a j 1≤j≤i-1
a′j= b j = i
a j-1i+1≤j≤n+1
一般情况下,要在第i(1≤i≤n)个元素之前插入一个新元素时,首先要从最后一个(即第n)元素开始,知道第i 个元素之间共n-i+1个元素依次向后移动一个位置,移动结束后,第i个就被空出,然后将新元素插入到第i 个位置,插入结束后,线性表的长度增加了1.(2)线性表的删除运算
设长度为n的线性表为
(a1 ,a2 ,…,a i ,…,a n)
现要删除第j个元素,删除后得到长度为n-1的线性表
(a′1,a′2,…,a′j,…,a′n-1)
则删除前后两个线性表中的元素满足如下关系:
a j 1≤j≤i-1
a′j=
a j+1 i+1≤j≤n+1
一般情况下,要删除第i (1≤i≤n )个元素时,从第i+1个元素开始,直到第n个元素之间共n-1个元素依次向前移动一个位置,删除结束后,线性表的长度减少了1。
1.4 栈和队列
栈及其基本运算