计算机二级考试公共基础知识Word文档下载推荐.docx
《计算机二级考试公共基础知识Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机二级考试公共基础知识Word文档下载推荐.docx(41页珍藏版)》请在冰豆网上搜索。
在这个过程中,无论是形成解题思路(推理实现的算法)还是编写程序(思路(推理实现的算法)还是编写程序(操作实现的算都是在实施某种算法。
法),都是在实施某种算法。
个数从大到小进行排序。
例:
n个数从大到小进行排序。
个数从大到小进行排序
常用的有冒泡排序、选择排序等。
有多种排序方法,常用的有冒泡排序、选择排序等。
第5页
2.算法的基本特征
一个算法应该具有以下五个重要的特征:
有穷性确定性输入输出可行性
一个算法必须保证执行有限步之后结束;
算法的每一步骤必须有确切的定义;
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
一个算法有一个或多个输出,以反映对输入数据加工后的结果。
没有输出的算法是毫无意义的;
算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成
第6页
3.算法的表示
一个算法的表示需要使用一些语言形式。
传统的算法图形法,如“流程图”和N-S图图形法,传统的算法图形法流程图”图目前常用的方法使用伪码描述算法。
使用伪码描述算法。
目前常用的方法使用伪码描述算法
算法与计算机程序算法是一组逻辑步骤算法是一组逻辑步骤程序——用计算机语言描述的算法程序用计算机语言描述的算法
问题:
输入园的半径,计算园的面积INPUTrS=3.14*r*rPTINTS
开始输入R输入RS=3.14*R*R
输出S输出S
结束第7页
算法举例:
个数排序算法举例:
n个数排序
冒泡排序的方法:
1.扫描整个线性表,逐次对扫描整个线性表,扫描整个线性表相邻的两个元素进行比较,相邻的两个元素进行比较,若为逆序,则交换;
若为逆序,则交换;
第一趟扫描的结果使最大的元素排到表的最后;
2.除最后一个元素,对剩余除最后一个元素,除最后一个元素的元素重复上述过程,的元素重复上述过程,将次大的数排到表的倒数第二个位置;
位置;
3.重复上述过程;
重复上述过程;
重复上述过程对于长度为n的线性表,对于长度为的线性表,冒泡的线性表排序需要对表扫描n-1遍。
排序需要对表扫描遍
第8页
4.算法的两个基本要素:
算法的两个基本要素:
一是对数据对象的运算和操作;
二是算法的控制结构。
基本运算和操作
算术运算关系运算逻辑运算数据传输
控制结构
顺序选择循环
算法基本设计方法:
列举法、归纳法、递推、递归、减斗递推技术、回溯法第9页
5.算法评价
评价一个算法优劣的主要标准是算法的执行效率和存储需求:
时间复杂度:
执行这个算法所需要的计算工作量时间复杂度:
执行这个算法所需要的计算工作量
一般可以用算法在执行过程中所需基本运算的执行次数来度量计算工作量
空间复杂度:
执行这个算法所需要的内存空间空间复杂度:
执行这个算法所需要的内存空间
算法在执行过程中临时占用的存储空间时间复杂度它大致等于计算机执行一种简单操作所需的平均时间时间复杂度它大致等于计算机执行一种简单操作所需的平均时间与算法它大致等于计算机执行一种简单操作所需的平均时间与算法中进行简单操作的次数的乘积简单操作的次数的乘积。
中进行简单操作的次数的乘积。
一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间、算法中的输入输出数据所占用的存储空间和的存储空间、算法中的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个部分临时占用的存储空间这三个部分
第10页
一、算法
算法不等于程序,也不等计算机方法,程序的编制不算法不等于程序,也不等计算机方法,可能优于算法的设计。
可能优于算法的设计。
算法评价:
执行这个算法所需要的计算工作量空间复杂度:
第11页
算法习题:
(1)在计算机中,算法是指在计算机中,算法是指。
。
A.查询方法B.加工方法(c)C.解题方案的准确而完整的描述D.排序方法
(2)下列叙述中正确的是(07年4月)下列叙述中正确的是年月A)算法的效率只与问题的规模有关,而与数据的存储结构无关算法的效率只与问题的规模有关,算法的效率只与问题的规模有关B)算法的时间复杂度是指执行算法所需要的计算工作量算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻辑结构与存储结构是一一对应的数据的逻辑结构与存储结构是一一对应的(B)D)算法的时间复杂度与空间复杂度一定相关算法的时间复杂度与空间复杂度一定相关(3)算法的有穷性是指(08年4月)算法的有穷性是指年月A)算法程序的运行时间是有限的)(A)B)算法程序所处理的数据量是有限的)C)算法程序的长度是有限的)D)算法只能被有限的用户使用)
第12页
(4)算法的时问复杂度是指(2010年3月)年月A)算法的执行时间算法的执行时间B)算法所处理的数据量算法所处理的数据量C)算法程序中的语句或指令条数算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数算法在执行过程中所需要的基本运算次数(5)算法的空间复杂度是指(09年9月)年月A)算法在执行过程中所需要的计算机存储空间)B)算法所处理的数据量)C)算法程序中的语句或指令条数)D)算法在执行过程中所需要的临时工作单元数)(6)下列叙述中正确的是(06年9月)年月
(D)
计算工作量
(A)
A)一个算法的空间复杂度大,则其时间复杂度也必定大)一个算法的空间复杂度大,B)一个算法的空间复杂度大,则其时间复杂度必定小)一个算法的空间复杂度大,C)一个算法的时间复杂度大,则其空间复杂度必定小)一个算法的时间复杂度大,D)上述三种说法都不对)
第13页
二、数据结构
程序=算法数据结构程序算法+数据结构算法
计算机在进行数据处理时,计算机在进行数据处理时,实际需要处理的数据元素一般有很多,而这些大量的数据元素都需要存放在计算机中,因此,大量很多,而这些大量的数据元素都需要存放在计算机中,因此,数据元素在计算机中如何组织,以便提高数据处理的效率,的数据元素在计算机中如何组织,以便提高数据处理的效率,并且节省计算机的存储空间,这是进行数据处理的关键问题。
节省计算机的存储空间,这是进行数据处理的关键问题。
数据结构是指相互有关联的数据元素的集合。
一般来说,人们不会同时处理特征完全不同且互相之间没有任何关系的各类数据元素,对于具有不同特征的数据元素总是分别进行处理。
一般情况下,在具有相同特征的数据元素集合中,一般情况下,在具有相同特征的数据元素集合中,各个数据元素之间存在有某种关系(即联系),),这种关系反映了该集元素之间存在有某种关系(即联系),这种关系反映了该集合中的数据元素所固有的一种结构。
合中的数据元素所固有的一种结构。
第14页
二.数据结构
数据结构是研究数据和数据之间关系的一门
学科,它包括三个方面。
(1)数据集合中各数据元素之间所固有的逻)辑关系,即数据的逻辑结构;
辑关系,即数据的逻辑结构;
(2)在对数据进行处理时,各数据元素在计)在对数据进行处理时,算机中的存储关系,即数据的存储结构;
算机中的存储关系,即数据的存储结构;
(3)对各种数据结构进行的运算。
)对各种数据结构进行的运算。
第15页
1.
逻辑结构
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。
数据的逻辑结构包含:
(1)表示数据元素的信息;
)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
)表示各数据元素之间的前后件关系。
1.一年四季的数据结构B=(D,R)D={春,夏,秋,冬}春R={(春,夏),(夏,秋),(秋,冬)}春夏秋2.家庭成员的数据结构B=(D,R)D={父亲,儿子,女儿父亲,父亲儿子,女儿}R={(父亲,儿子,(父亲,女儿父亲,父亲,父亲儿子)父亲女儿)}春
数据结构的图形表示
夏父亲秋冬
儿子
女儿第16页
常见的逻辑结构有:
线性结构、树形结构和图形结构。
图形结线性结构树形结构构
线性结构
结构的的的
树形结构
结构的
图形结构
结构
的线形结构。
线形结构。
图形。
的。
第17页
结构的树形结构和图形结构
2.存储结构(物理结构)存储结构(
计算机在实际进行数据处理时,计算机在实际进行数据处理时,被处理的各数据元素总是被存放在计算机的存储空间中,并且,算机的存储空间中,并且,各数据元素在计算机存储空间中的位置与它们的逻辑关系不一定是相同的,而且一般也不可能相同。
它们的逻辑关系不一定是相同的,而且一般也不可能相同。
如:
一年四季家庭成员计算机存储空间怎样存放?
存储结构指数据结构在计算机存储空间中的具体实现。
常见的存储结构有:
顺序存储结构链式存储结构索引存储结构存储结构
只抽象地反映数据元素之间的关系的结构,系的结构,而不管其存储方式的数据结构称为逻辑结构。
数据结构称为逻辑结构。
?
一种数据结构可以根据需要表示一种数据结构可以根据需要表示成一种或多种存储结构。
成一种或多种存储结构。
第18页
通常,一个数据结构中的元素结点可能是动态变化的。
根据需要或在处理过程中,据需要或在处理过程中,可以在一个数据结构中增加一个新结插入运算),也可以删除某个结点(删除运算),),也可以删除某个结点),除此之点(插入运算),也可以删除某个结点(删除运算),除此之对数据结构的运算还有查找、分类、合并、分解、外,对数据结构的运算还有查找、分类、合并、分解、复制和修改。
修改。
在对数据结构的处理过程中,在对数据结构的处理过程中,不仅数据结构中结点的个数在动态变化,而且,在动态变化,而且,各数据元素之间的关系也有可能在动态地变化。
变化。
如:
无序表变有序表
3.数据的运算检索插入删除更新排序
数据结构是研究数据和数据之间关系的一门学科,关系的一门学科,研究以下三方面内容:
内容:
数据的逻辑结构数据的存储结构数据的运算
第19页
常见的数据结构
1.线性表线性表2.栈和队列栈和队列3.树树
上一页下一页停止放映
第20|92页20|92页|92
1.线性表(LinearList)线性表(List)
线性表是由n(线性表是由(n≥0)个数据元素
a1,a2,…,ai,…,an组成的一个有限序列。
,,组成的一个有限序列。
简单的线性表
春夏秋冬
复杂的线性表
记录1记录记录2记录记录3记录记录4记录
第21页02011001
张三男李四女
……
02011003
线性表的存储结构
线性表的存储结构有两种:
顺序存储结构链式存储结构
存储地址
20002004
…
a1a2…ai…an…
占4个字节个字节
线性表的顺序存储结构
顺序存储结构把逻辑上相邻的顺序存储结构把逻辑上相邻的逻辑上相邻数据元素存储在物理上相邻物理上相邻的存数据元素存储在物理上相邻的存储单元里,顺序存储结构只存储储单元里,顺序存储结构只存储结点的值,不存储结点间的关系,结点的值,不存储结点间的关系,结点间的关系由存储单元的邻接关系来体现。
关系来体现。
2000+4*(i-1)
2000+4*(n-1)
Loa(Loa(ai)=Loa(a1)+L*(i-1)=Loa(+L*(
第i个数的地址第一个数的地址L为该类型数所占的字节第22页
顺序表的插入和删除运算
线性表的顺序存储结构称为顺序表。
顺序表的插入运算顺序表的删除运算在线性表顺序存储情况下,在线性表顺序存储情况下,要插入或删除一个元素,都会由于数据元素的移动而消耗大量的处理时间,都会由于数据元素的移动而消耗大量的处理时间,所以这种存储方式对于小线性表或其中数据元素不经常变动的线性表是合适的。
常变动的线性表是合适的。
第23页
线性表的链式存储结构
线性表的链式存储结构称为线性链表。
链式存储结构不要求逻辑上相邻的数据元素物理位置也相邻,而且各数据元素的存储顺序也是任意的。
置也相邻,而且各数据元素的存储顺序也是任意的。
各数据元素的先后关系是由各结点的指针域指示。
链式存储结构的每一个存储结点不仅存储结点的值,链式存储结构的每一个存储结点不仅存储结点的值,而且存储结点之间的关系:
而且存储结点之间的关系:
数据域
指针域
第24页
线性链表的物理状态线性链表的物理状态
应用举例——应用举例——线性链表的存储结构——线性链表的存储结构
设线性表为(a1,a2,a3,a4,a5)
1a1
线性表的顺线性表的顺序存储结构序存储结构
HEAD
123456789103
a2a1a4
9110
2a23a34a45a567
31
注意:
123此类编号不代表所在的地址单元的地址编码
a3a5
10
50
9
5
a1
a2
a3
a4
a5
第25页
线性链表的逻辑状态
线性链表的插入和删除运算
单链表的插入运算单链表的删除运算采用链式存储结构,存储空间开销较大,采用链式存储结构,存储空间开销较大,但是进行插入和删除运算不会造成大量元素的移动。
入和删除运算不会造成大量元素的移动。
循环链表是加一种形式的链式存储结构。
它的特点是表中最后一个结点的指针域指向头结点。
表中最后一个结点的指针域指向头结点。
3HEAD19510
第26页
双向链表的存储结构
提问:
单向链表的缺点是什么?
提示:
如何寻找结点的直接前趋。
双向链表可以克服单链表的单向性的缺点。
在双向链表的结点中有两个指针域,在双向链表的结点中有两个指针域,其一指向直接后继,另一指向直接前趋。
直接后继,另一指向直接前趋。
3HEAD1510
双向循环链表
第27页
线性表:
{a1,a2,a3,a4,a5},,,,
注意:
数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。
不一定是相同的。
一个逻辑数据结构可以有多种存储结构,可以有多种存储结构,且不同的存储结构影响数据处理的效率。
线性表的存储结构有两种
顺序存储结构
1a12a23a34a45a567
HEAD3
链式存储结构
12345678910a3a550a410a11a29
第28页
2.栈和队列
栈和队列都是特殊的线性表。
栈(Stack)及其基本运算Stack)队列(Queue)及其基本运算队列(Queue)循环队列及其基本运算
第29页
栈(Stack)是一种特殊的线性表。
其特点是插入和删Stack)是一种特殊的线性表线性表。
除运算都只能在线性表的一端进行。
栈是按照“先进后出”后进先出”栈是按照“先进后出”或“后进先出”的原则组织数据的线性表。
据的线性表。
栈的物理存储结构可以用顺序结构,栈的物理存储结构可以用顺序结构,也可以用链表结构。
下面讨论顺序存储结构中栈元素的插入和删除运算。
顺序栈的进栈和出栈运算
栈的基本运算有三种:
入栈、栈的基本运算有三种:
入栈、退栈和读栈顶元素
在顺序栈中插入和删除运算不需要移动表中其他数据元素。
移动表中其他数据元素。
第30页
队列(Queue)是一种特殊的线性表。
其特点是所有的队列(Queue)是一种特殊的线性表。
插入都在表的一端进行所有的删除运算都在表的另进行,删除运算都在表的插入都在表的一端进行,所有的删除运算都在表的另一端进行进行。
一端进行。
队列是按照“先进先出”后进后出”队列是按照“先进先出”或“后进后出”的原则组织数据的线性表。
数据的线性表。
队列的物理存储结构可以用顺序结构,也可以用链式队列的物理存储结构可以用顺序结构,结构。
结构。
顺序队列的运算
栈有三种操作:
入栈\出栈\栈有三种操作:
入栈\出栈\读栈顶元素队列有三种操作:
入队\出队\队列有三种操作:
入队\出队\读队首元素例:
有入栈元素序列:
ABCD,求可能的出栈序列.有入栈元素序列:
,求可能的出栈序列.如是队列又是什么情况呢?
如是队列又是什么情况呢?
第31页
循环队列把队列的存储空间在逻辑上看作一个环,把队列的存储空间在逻辑上看作一个环,当R指向存指向存储空间的末端后,就把它重新置于始端。
储空间的末端后,就把它重新置于始端。
循环队列的运算
队列中进行插入的一端称做队尾(rear),进行删除的一端进行删除的一端队列中进行插入的一端称做队尾称做队首(front)。
称做队首。
习题:
数据结构分为逻辑结构和存储结构,习题:
数据结构分为逻辑结构和存储结构,循环队列属于【结构。
(。
(2005年9月)列属于【】结构。
(年月答案:
存储结构。
答案:
第32页
常见数据结构的逻辑结构
线性表栈队列
也是一种操作受限的特殊的线性表线性结构是特殊的线性表
树型结构)树(树型结构)
是一种重要的非线形数据结构
第33页
数据存储结构方面的考题
1:
数据的存储结构是指(2005年4月):
年月A)存储在外存中的数据C)数据在计算机中的顺序存储方式2.下列叙述中正确的是(2009年3月)年月A)栈是“先进先出”的线性表)栈是“先进先出”B)队列是“先进后出”的线性表)队列是“先进后出”C)循环队列是非线性结构)D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构)有序线性表既可以采用顺序存储结构,B)数据所占的存储空间量D)数据的逻辑结构在计算机中的表示
D。
3.数据结构分为线性结构和非线性结构,带链的队列属于数据结构分为线性结构和非线性结构,带链的队列属于[4.下列数据结构中,属于非线性结构的是下列数据结构中,A)循环队列)C)二叉树B)带链队列D)带链栈)
]。
线性结构。
c第34页
5。
下列叙述中正确的是()。
(2008年9月)。
下列叙述中正确的是(年月
A。
A)顺序存储结构的存储一定是连续的,链式存储结构的存储空)顺序存储结构的存储一定是连续的,间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性)顺序存储结构只针对线性结构,结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表)顺序存储结构能存储有序表,D)链式存储结构比顺序存储结构节省存储空间)
6。
下列关于栈的叙述正确的是(2008年4月)年月栈按“先进先出”B)栈按先进后出”栈按“A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据答案:
B。
7.一个队列的初始状态为空。
现将元素A,B,C,D,E,F,5,4,3,一个队列的初始状态为空。
现将元素,,,,,,,,,2,1依次入队,然后再依次退队,则元素退队的顺序为