计算机二级公共基础知识(完整版).ppt
《计算机二级公共基础知识(完整版).ppt》由会员分享,可在线阅读,更多相关《计算机二级公共基础知识(完整版).ppt(159页珍藏版)》请在课桌文档上搜索。
1、二级公共基础知识,第一章 数据结构基础,2,内容提要,算法:算法的基本概念、算法复杂度数据结构的基本概念:什么是数据结构、数据结构的图形表示、线性结构与非线性结构线性表及其顺序存储结构:线性表的基本概念、顺序存储结构、插入运算、删除运算栈和队列:栈及其基本运算、队列及其基本运算线性链表:基本概念、基本运算、循环链表及其基本运算树与二叉树:树的基本概念、二叉树及其基本性质、二叉树的存储结构、二叉树的遍历查找技术:顺序查找、二分法查找排序技术:交换类排序法、插入类排序法、选择类排序法,1.1 算法,4,1.1.1 算法的基本概念,算法是解题方案的准确而完整的描述,它不等于程序,也不等计算方法。1算
2、法的基本特征可行性(effectiveness)确定性(definiteness)有穷性(finiteness)拥有足够的情报2算法的基本要素算法中对数据的运算和操作算术运算:包括加、减、乘、除等)逻辑运算:包括“与”、“或”、“非”等运算)关系运算:包括“大于”、“小于”、“等于”、“不等于”等)数据传输:包括赋值、输入、输出等操作算法的控制结构(描述算法的工具传统流程图、),5,算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言算法一般可以用顺序、选择和循环三种控制结构组合而成。,6,1.1.1 算法的基本概念,3算法设计的基本方法列举法归纳法递推递归减半递推技术回
3、溯法,7,1.1.2 算法复杂度,算法复杂度:时间复杂度、空间复杂度1算法的时间复杂度执行算法所需要的计算工作量与下列因素无关:书写算法的程序设计语言编译产生的机器语言,代码质量机器执行指令的速度问题的规模,8,1.1.2 算法复杂度,问题的规模函数算法的工作量=f(n)算法中基本操作重复执行的频率T(n),是问题规模n的某个函数f(n),记作:T(n)=O(f(n)记号“O”读作“大O”。表示随问题规模n的增加,算法执行时间的增长率和f(n)相应增加。常见算法复杂度:O(1):常数阶 O(n):作线性阶 O(n2):平方阶O(n3):立方阶 O(logn):对数阶 O(2n):指数阶,9,1
4、.1.2 算法复杂度,nn矩阵相乘算法:时间复杂度为O(n3)。,10,1.1.2 算法复杂度,分析算法的工作量两种方法:平均性态A(n)=p(x)t(x)xDn最坏情况复杂性所谓最坏情况分析,是指在规模为n时,算法所执行的基本运算的最大次数。它定义为W(n)=maxt(x)xDn,11,例12 采用顺序搜索法,在长度为n的一维数组中查找值为x的元素。,例12 采用顺序搜索法,在长度为n的一维数组中查找值为x的元素。即从数组的第一个元素开始,逐个与被查值x进行比较。基本运算为x与数组元素的比较。首先考虑平均性态分析。设被查项x在数组中出现的概率为q。当需要查找的x为数组中第i个元素时,则在查找
5、过程中需要做i次比较,当需要查找的x不在数组中时(即数组中没有x这个元素),则需要与数组中所有的元素进行比较。即 i,1inti=n,i=n+1其中i=n+1表示x不在数组中的情况。其中i=n+1表示x不在数组中的情况。如果假设需要查找的x出现在数组中每个位置上的可能性是一样的,则x出现在数组中每一个位置上的概率为q/n(因为前面已经假设x在数组中的概率为q),而x不在数组中的概率为1-q。即q/n,1inpi=1-q,i=i+1其中i=n+1表示x不在数组中的情况,12,例12 采用顺序搜索法,在长度为n的一维数组中查找值为x的元素。,因此,用顺序搜索法在长度为n的一维数组中查找值为x的元素
6、,在平均情况下需要做的比较次数为n+1 nA(n)=piti=(q/n)i+(1-q)n=(n+1)q/2+(1-q)ni=1 i=1如果已知需要查找的x一定在数组中,此时q=1,则A(n)=(n+1)/2。这就是说,在这种情况下,用顺序搜索法在长度为n的一维数组中查找值为x的元素,在平均情况下需要检查数组中一半的元素。如果已知需要查找的x有一半的机会在数组中,此时q=1/2,则A(n)=(n+1)/4+n/23n/4这就是说,在这种情况下,用顺序搜索法在长度为n的一维数组中查找值为x的元素,在平均情况下需要检查数组中3/4的元素。,13,例12 采用顺序搜索法,在长度为n的一维数组中查找值为
7、x的元素。,再考虑最坏情况分析。在这个例子中,最坏情况发生在需要查找的x是数组中的最后一个元素或x不在数组中的时候,此时显然有W(n)=maxti|1in+1=n在上述例子中,算法执行的工作量是与具体的输入有关的,A(n)只是它的加权平均值,而实际上对于某个特定的输入,其计算工作量未必是A(n),且A(n)也不一定等于W(n)。但在另外一些情况下,算法的计算工作量与输入无关,即当规模为n时,在所有可能的输入下,算法所执行的基本运算次数是一定的,此时有A(n)=W(n)。例如,两个n阶的矩阵相乘,都需要做n3次实数乘法,而与输入矩阵的具体元素无关。,14,1.1.2 算法复杂度,2算法的空间复杂
8、度算法执行过程中所需的最大存储空间存储量包括以下三部分算法程序所占的空间输入的初始数据所占的存储空间算法执行过程中所要的额外空间算法空间复杂度可定义为:S(n)=O(f(n)原地工作(in place)的算法:记作O(1)压缩存储技术,15,习题,(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。,16,习题,算法的时间复杂度是指A)执行算法程序所需要的时
9、间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D)算法程序中的指令条数解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。,17,习题,算法的基本特征是可行性、确定性、和拥有足够的情报。解析:算法是指解题方案的准确而完整的描述。它有4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报,18,习题,在计算机中,算法是指A)加工方法B)解题方案的准确而完整的描述 C)排序方法D)查询方法解析:计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征:可行性、确
10、定性、有穷性和拥有足够的情报。,19,习题,算法分析的目的是A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性 D)分析算法的效率以求改进解析:算法分析是指对一个算法的运行时间和占用空间做定量的分析,一般计算出相应的数量级,常用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。,20,习题,算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【1】。【命题目的】本题考查了考生对算法的理解程度。【解题要点】算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法的计算量是算法的时间复杂性
11、,算法所需存储空间大小是算法的空间复杂性。,1.2 数据结构的基本概念,22,1.2.1 什么是数据结构,1数据结构研究的主要内容数据的逻辑结构数据的存储结构对各种数据结构进行的运算2研究数据结构目的提高数据处理的速度尽量节省在数据处理过程中所占用的计算机存储空间,23,1.2.1 什么是数据结构,1数据结构研究的主要内容数据的逻辑结构数据的存储结构对各种数据结构进行的运算2研究数据结构目的提高数据处理的速度尽量节省在数据处理过程中所占用的计算机存储空间,24,1.2.1 什么是数据结构,25,1.2.1 什么是数据结构,3数据结构的定义相互有关联的数据元素的集合数据元素之间的关系可以用前后件
12、关系来描述一个数据结构应包含以下两方面信息:表示数据元素的信息 表示各数据元素之间的前后件关系,26,1.2.1 什么是数据结构,4数据的逻辑结构对数据元素之间的逻辑关系的描述只抽象地反映数据元素之间的逻辑关系,与计算机中的存储无关两个要素:数据元素的集合,通常记为D;前后件关系,通常记为R一个数据结构B可以表示为(P12)B=(D,R),27,1.2.1 什么是数据结构,5数据的存储结构数据的逻辑结构在计算机存储空间中的存放形式常用的存储结构:顺序链式索引一种数据结构可根据需要采用不同的存储结构。采用不同的存储结构,其数据处理的效率是不同,28,例如,如果把一年四季看作一个数据结构,则可表示
13、成B=(D,R)D=春季,夏季,秋季,冬季R=(春季,夏季),(夏季,秋季),(秋季,冬季),29,1.2.2 数据结构的图形表示,数据结点:用方框表示根结点、终端结点前后件关系:用有向线段表示基本运算:插入运算删除运算查找、分类、合并、分解、复制、修改、,30,1.2.3 线性结构与非线性结构,空的数据结构:一个数据元素都没有线性结构如果一个非空数据结构满足下列两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。常见的线性结构有:线性表、栈与队列、线性链表非线性结构如果一个数据结构不是线性结构常见的非线性结构有:树、二叉树、图,31,习题,下列叙述中,错误的是A)数据的
14、存储结构与数据处理的效率密切相关B)数据的存储结构与数据处理的效率无关C)数据的存储结构在计算机中所占的空间不一定是连续的D)一种数据的逻辑结构可以有多种存储结构解析:一般来说,一种数据结构根据需要可以表示成多种存储结构。常用的存储结构有顺序、链接、索引等,而采用不同的存储结构,其数据处理的效率是不同的;一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的。,32,习题,线性表若采用链式存储结构时,要求内存中可用存储单元的地址A)必须是连续的 B)部分地址必须是连续的C)一定是不连续的 D)连续不连续都可以解析:在链式存储结构中,存储数据结构的存储空间可以是连续的,也
15、可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。,33,习题,根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成A)动态结构和静态结构B)紧凑结构和非紧凑结构C)线性结构和非线性结构 D)内部结构和外部结构【命题目的】考查考生对数据结构分类的理解。【解题要点】根据数据结构中各数据元素之间前后件关系的复杂程序,一般将数据结构分为两大类:线性结构和非线性结构。线性结构是指满足以下两个条件的非空的数据结构:一是有且只有一个根结点,二是每一个结点最多有一个前件,也最多有一个后件。如是一个数据结构不是线性结构,则称为非线性结构。,34,习题,数据结构作为计算机的
16、一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及A)数据的存储结构 B)计算方法C)数据映象D)逻辑存储解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科,它包含3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。,35,习题,数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构C)逻辑结构D)物理和存储结构解析:数据结构概念一般包括3个方面的内容,数据的逻辑结构、存储结构及数据上的运算集合。数据的逻辑结构只抽象的反映数据元素之间的逻辑关系,而不管它在计算机中的存储表示形式。,36,习题,数据的逻辑结构有线性结构和【1】两大类。解析:数据的逻辑
17、结构有线性结构和非线性结构两大类,1.3 线性表及其顺序存储结构,38,1.3.1 线性表的基本概念,线性表:由n(n0)个相同类型数据元素构成的有限序列:n定义为线性表的表长;n=0 时的线性表被称为空表。称i为在线性表中的位序。例如:英文大写字母表(A,B,C,D,E,F,X,Y,Z)同一花色的13张扑克牌(2,3,4,5,6,7,8,9,10,J,Q,K,A),39,1.3.1 线性表的基本概念,线性表的结构特征数据元素在表中的位置由序号决定,数据元素之间的相对位置是线性的;对于一个非空线性表,有且只有一个根结点a1,它无前件,有且只有一个终端结点an,它无后件,除根结点与终端结点外,其
18、他所有结点有且只有一个前件,也有且只有一个后件。线性表的存储结构顺序存储链式存储,40,1.3.2 线性表的顺序存储结构,两个基本特点:线性表中所有元素所占的存储空间是连续的。线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。存储示意图,41,1.3.3 顺序表的插入运算,42,1.3.4 顺序表的删除运算,43,顺序表的插入和删除分析,插入算法的分析假设线性表中含有n个数据元素,在进行插入操作时,若假定在n+1个位置上插入元素的可能性均等,则平均移动元素的个数为:删除算法的分析在进行删除操作时,若假定删除每个元素的可能性均等,则平均移动元素的个数为:分析结论顺序存储结构表示的线性表,在做
19、插入或删除操作时,平均需要移动大约一半的数据元素。当线性表的数据元素量较大,并且经常要对其做插入或删除操作时,这一点需要值得考虑,44,习题,线性表的顺序存储结构和线性表的链式存储结构分别是A)顺序存取的存储结构、顺序存取的存储结构B)随机存取的存储结构、顺序存取的存储结构C)随机存取的存储结构、随机存取的存储结构D)任意存取的存储结构、任意存取的存储结构【命题目的】考查有关线性表存储结构的基本知识。【解题要点】顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(i-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点
20、进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。,45,习题,下列叙述中正确的是A)线性表是线性结构B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构解析:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。,46,习题,度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【1】。解析:在线性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移
21、动元素的平均次数为E=1/(n+1)n+1 n=1(n-i+1)=n/2。,47,习题,线性表L=(a1,a2,a3,ai,an),下列说法正确的是A)每个元素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件解析:线性表可以为空表;第一个元素没有直接前件,最后一个元素没有直接后件;线性表的定义中,元素的排列并没有规定大小顺序。,48,习题,线性表若采用链式存储结构时,要求内存中可用存储单元的地址A)必须是连续的B)部分地址必须是连续的C)一定是不连续的 D)连
22、续不连续都可以解析:在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。,1.4 栈和队列,50,1.4.1 栈及其基本运算,1栈的定义栈(stack):一种只允许在表的一端进行插入或删除操作的特殊的线性表栈顶(top):允许进行插入与删除操作的一端栈底(bottom):不允许插入与删除操作的另一端先进后出(FILO)或后进先出(LIFO)的线性表,51,1.4.1 栈及其基本运算,2栈的顺序存储及其运算top=0:栈空 top=m:栈满栈的基本运算 入栈运算退栈运算读栈顶元素,52,1.4.2 队列及其基本运算,1队
23、列的定义限定只能在表的一端进行插入和在另一端进行删除操作的线性表队尾(rear):允许插入的一端队头(front):允许删除的另一端先进先出(FIFO)表或后进后出(LILO)线性表基本操作入队运算:往队列的队尾插入一个元素,队尾指针rear的变化退队运算:从队列的排头删除一个元素,队头指针front的变化,53,1.4.2 队列及其基本运算,2循环队列及其运算队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用 入队运算:队尾指针加1,并当rear=m+1时置rear=1出队运算:队头指针加1,并当front=m+1时置front=1,54,习题,栈和队列的共同特点
24、是A)都是先进先出B)都是先进后出C)只允许在端点处插入和删除元素 D)没有共同点解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种后进先出的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种先进先出的线性表。,55,习题,如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序解析:由栈后进先出的特点可知:A)中e1不可能比e2先出,C)中e3不可能比e4先出,且e1不可能比e2先出,D)中栈是先进
25、后出的,所以不可能是任意顺序。B)中出栈过程如图所示:,56,习题,栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是A)ABCEDB)DCBEAC)DBCEA D)CDABE解析:栈操作原则上“后进先出”,栈底至栈顶依次存放元素A、B、C、D,则表明这4个元素中D是最后进栈,B、C处于中间,A最早进栈。所以出栈时一定是先出D,再出C,最后出A。,57,习题,下列数据结构中,按先进后出原则组织数据的是A)线性链表B)栈C)循环链表D)顺序表【命题目的】本题主要考查对于栈的理解。【解题要点】栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 公共 基础知识 完整版
链接地址:https://www.desk33.com/p-272803.html