计算机二级知识点Word下载.docx
- 文档编号:21505504
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:11
- 大小:22.14KB
计算机二级知识点Word下载.docx
《计算机二级知识点Word下载.docx》由会员分享,可在线阅读,更多相关《计算机二级知识点Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
这个表达式表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同。
在同一问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时可以用两种方法来分析算法的工作量:
平均性态分析和最坏情况分析。
2.算法的空间复杂度。
一个算法的空间复杂度;
一般是指执行这个算法所需要的内存空间。
算法执行期间所需要的存储空间包括3部分
A,算法程序所占的空间
B,输入的初始数据所占的存储空间
C,算法执行过程中所需要的额外空间
在许多实际问题中为了减少算法所占的存储空间,通常采用压缩存储技术。
考点二数据结构的基本概念
1.数据结构是指相互有关联的数据元素的集合,即数据的组织形式。
(1)数据的逻辑结构。
所谓数据的逻辑结构,是指反映数据元素之间逻辑关系(及前,后件关系)的数据结构。
它包括数据元素的集合和数据元素之间的关系。
(2)数据的存储结构。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称为数据的物理结构)。
而采用不同的存储结构,其数据处理的效率是数据结构的存储方式有顺序存储方法,链式存储方法,索引存储方法和散列存储方法。
不同的。
因此,在进行数据处理时,选择合适的存储结构是很重要的。
数据结构研究的内容主要包括3个方面:
A数据集合中各数据元素之间的逻辑关系,即数据的逻辑结构;
B在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
2.数据结构的图形表示
数据元素之间的最基本的关系是前后件关系,即每一个二元组,都可以用图形来表示。
用中间标有元素值的方框表示数据元素,一般称之为数据结点,简称结点。
对于每一个二元组,用一条有向线段从前件指向后件。
用图形表示数据结构具有直观易懂的特点,在不引起歧义的情况下,前件结点到后件结点的连线上的箭头可以省去。
例如,树形结构中,通常是用无向线段来表示前、后件关系的。
3.线性结构和非线性结构
根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型,即线性结构和非线性结构。
如果一个非空的数据结构满足有且只有一个根结点,并且每个结点最多有一个直接前驱或直接后继,则称该数据结构为线性结构,又称线性表。
不满足上述条件的数据结构称为非线性结构。
小提示
需要注意的是,在一个线性结构中插入或删除任何一个结点后还应该是线性结构,否则,不能称之为线性结构。
考点三线性表及其顺序存储结构
在数据结构中,线性表是最简单的也是最常用的一种数据结构。
线性表是由n(n>
=0)个数据a1,a2.....an组成的一个有限序列,除表中的第一个元素外,其他元素有且只有一个前件,除了最后一个元素外,其他元素有且只有一个后件。
线性表要么是个空表,要么可以表示为(a1a2...an)其中ai(i=1,2,....,n)是线性表的数据元素,也称为线性表的一个结点。
每个元素的具体含义,在不同的情况下各不相同,它可以是一个数后或一个字符,也可以是一个具体的事物,甚至其他更复杂的信息。
但需要注意的是同一线性表中的数据元素具有相同的特征,即属于同一数据对象。
非空线性表具有以下一些结构特征:
A有且只有一个根结点,即头结点,它无前件;
B有且只有一个终结点,即尾结点,它无后件;
C除头结点和尾结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点的个数n称为线性表的长度,当n=0时,称为空表。
2.线性表的顺序存储结构
将线性表中的元素一个接一个地存储在一片相邻的存储区域中。
这种顺序表示的线性表也称为顺序表。
线性表的顺序存储结构具有以下两个基本特点
A元素所占的存储空间是连续的
B元素在存储空间的位置是按逻辑顺序存放的。
从这两个特点也可以看出,线性表是用元素在计算机内物理位置上相邻关系来表示元素之间逻辑上的相邻关系。
只要确定了首地址,线性表内任意元素的地址都可以方便地计算出来。
3.线性表的插入运算
在线性表的插入运算中,在第i个元素之前插入一个元素,完成插入操作主要有以下3个步骤:
(1)把原来第n个结点至第i个结点依次往后移一个元素的位置;
(2)把新结点放在第i个位置上;
(3)修正线性表的结点个数;
一般会为线性表开辟一个大于线性表长度的存储空间,经过多次插入运算,可能出现存储空间已满的情况,如果此时仍继续做插入运算,将会产生错误,此类错误称为“上溢”。
如果需要在线性表末尾进行插入运算,则只需要在表的末尾增加一个元素即可,不需要移动线性表中的元素。
如果第一个位置插入新的元素,则需要移动表中的所有数据。
4.线性表的删除运算
在线性表的删除运算中,删除第i个位置的元素,则要从第i+1个元素直到第n个元素之间,共n-i个元素依次向前移动一个位置。
完成删除运算的主要有以下几个步骤:
A把第i个元素之后(不包括第i个元素)的n-i个元素依次前移一个位置;
B修正线性表的结点的个数。
显然,如果删除运算在线性表的末尾进行,即删除第n个元素,则不需要移动线性表的元素。
如果要删除第1个元素则要移动表中的所有数据。
由线性表的以上性质可以看出,线性表的顺序存储结构适合用于小线性表或者建立之后其中元素不常变动的线性表,而不适合用于需要经常进行插入和删除运算的线性表和长度较大的线性表。
考点4栈和队列
1,栈及其基本运算
(1)栈的基本概念
栈实际上也是一种线性表,只不过是一种特殊的线性表,在这种特殊的线性表中,其插入和删除运算都只在线性表的一段进行。
在栈中,允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。
当栈中没有元素时称为空栈,栈也被称为“先进后出”表,或“后进先出”表。
(2)栈的特点。
根据栈的上述定义,可知栈有以下特点:
A栈顶元素总是最后插入的元素,也是最早被删除的元素;
B栈底元素总是最早被插入的元素,也是最晚才能被删除的元素。
C栈具有记忆功能。
D栈顶指针top动态反映了栈中元素的变化情况。
(3)栈的顺序存储及其运算。
根据栈的状态,可以得知栈的基本运算有3种。
A入栈运算:
在栈顶位置插入一个新元素。
B退栈运算:
取出栈顶元素并赋给一个指定的变量。
C读栈顶元素:
将栈顶元素赋给一个指定的变量。
2队列及其基本运算
(1)队列的基本概念。
队列是指允许在一端进行插入,而另一端进行删除的线性表。
允许插入的一端称为队尾,通常用一个称为队尾的指针(rear)的指针指向队尾元素;
允许删除的一端称为队头,通常用一个头指针(front)指向头元素的前一个位置。
因此,队列又称为“先进先出”(FIFO,FirstInFirstOut)的线性表。
插入元素称为入队运算,删除元素称为退队运算。
(2)循环队列及其运算。
所谓循环队列,就是将队列存储空间的最后一个位置绕道第一个位置,形成逻辑上的环状空间,供队列循环使用。
在循环队列中用尾指针指向队列的尾元素,用头指针指向头元素的前一个位置,因此,从头指针指向的后一个位置直到尾指针指向的位置之间所有元素均为队列中的元素,循环队列的初始状态为空,即rear=front。
循环队列的基本运算主要有两种:
入队运算和退队运算。
A入队运算是指在循环队列的队尾加一个新的元素。
B退队运算是指在循环队列的队头位置退出一个元素,并赋给指定的变量。
栈是按照“先进后出”或“后进先出”的原则组织数据,而队列是按照“先进先出”或“后进后出”的原则组织数据,这就是栈和队列的不同点。
考点5线性链表
1.线性链表的基本概念
线性表的链式存储结构称为线性链表。
为了存储线性链表中的每一个元素,一方面要存储数据元素的值,另一方面要存储各数据元素之间的前后件关系。
为此,在链式存储结构中,每个结点有两部分组成:
一部分称为数据域,用于存放数据元素值,另一部分称为指针域,用于存放下一个数据元素的存储序号,即指向后件的结点。
链式存储结构既可以表示线性结构,也可以表示非线性结构。
线性表链式存储结构的特点是:
用一组不连续的存储单元存储线性链表中的各个元素。
因为存储单元不连续数据之间的逻辑关系就不能依靠数据元素的存储单元之间的物理关系来表示。
2.线性链表的基本运算
线性链表主要包括以下几种运算:
A在线性链表中包括指定元素的结点之前插入一个新元素。
B在线性链表中删除包括指定元素的结点。
C将两个线性链表按照要求合并成一个线性链表;
D将一个线性链表按照要求进行分解;
E逆转线性链表;
F复制线性链表;
G线性链表的排序
H线性链表的查找
3循环链表及其基本运算
(1)循环链表的定义
在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,在最后一个结点的指针域的值由NULL改为指向表头的结点,这样的链表称为循环链表。
在循环链表中,所有结点的指针构成了一个环状链。
(2)循环链表和单链表的比较。
对单链表的访问是一种顺序访问,从其中某一个结点出发,只能找到他的直接后继,但无法找到它的直接前驱,而且对于空表和第一个结点的处理必须单独考虑,空表的非空表的操作不统一。
在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有结点。
并且,由于表头结点是循环链表所固有的结点,因此,即使在表中没有数据元素的情况下,表中也至少有一个结点存在,从而使空表和非空表的运算统一。
考点6树和二叉树
1.树的基本概念
树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。
树是由n(n>
=0)个结点构成的有限集合,n=0的树为空树;
当n!
=0时,树中的结点应该满足以下几个条件:
A有且仅有一个没有前驱的结点称之为根
B其余结点分成m(m>
0)个互不相交的有限集合T1,T2,....,Tm,其中每个集合又是一颗树,称T1,T2,....,Tm,为根结点的子树。
在树的结构中主要涉及下面几个概念:
A每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根;
B每一个结点可以有多个后件,称为该结点的子结点没有后件的结点称为叶子结点;
C一个结点所拥有的后继个数称为该结点的度;
、
D所有结点最大的度称为树的度;
E树的最大层次称为树的深度。
2.二叉树及其基本性质
(1)二叉树的定义。
二叉树是一种非线性结构,是一个有限的结点集合,该集合或者为空,或者由一个根结点及其两棵树互不相交的左右二叉子树所组成。
当集合为空时,称该二叉树为空二叉树。
二叉树具有以下特点:
A二叉树可以为空,空的二叉树没有结点,非空二叉树有且只有一个根结点;
B每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
(2)满二叉树和完全二叉树;
满二叉树:
除最后一层外,每一层上的所有结点都有两个子节点,即在满二叉树的第K层上有2k-1个结点,且深度为m的满二叉树中有2m-1个结点;
完全二叉树:
除最后一层外,每一层上的结点数都达到最大值;
在最后一层上只缺少右边的若干个结点。
满二叉树与完全二叉树的关系:
满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树。
(3)二叉树的主要性质
A一颗非空二叉树的第K层上最多有2k-1个结点(K>
=1)。
B深度为m的满二叉树中有2m-1个结点。
C对任何一颗二叉树,度为0的结点(叶子结点)总比度为2的结点多一个。
D具有n个结点的完全二叉树的深度k为[log2(n)]+1.
三,二叉树的储存结构
在计算机中,二叉树通常是采用链式储存结构。
用于存储二叉树中各元素的存储节点由数域组成和指针域组成。
由于每一个元素可以有两个后件(即两个子结点),所以用于存储二叉树的存储结点的指针域有两个:
一个指向该结点的左子结点的存储地址,称为左指针域;
另一个是指向该结点的右子结点的存储地址,称为右指针域。
因此,二叉树的链式存储结构也称为二叉链表。
对于满二叉树和完全二叉树可以按层次进行顺序存储。
四,二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。
二叉树的遍历主要是针对非空二叉树的,对于空二叉树,则结束遍历并返回。
二叉树的遍历有前序遍历,中序遍历和后序遍历。
(1)前序遍历(DLR)。
首先访问根结点,然后遍历左子树,最后遍历右子树。
(2)中序遍历(LDR)
首先遍历左子树,然后访问根结点,最后遍历右子树。
(3)后序遍历(LRD)
首先遍历左子树,然后遍历右子树,最后访问根结点。
已知一棵二叉树的前序遍历序列和中序遍历序列可以唯一地确定这棵二叉树。
已知一棵二叉树的后序遍历序列和中序遍历序列也可以唯一地确定这个二叉树。
已知一棵二叉树的前序遍历和和后序遍历序列不能唯一地确定这棵二叉树。
考点7查找技术
1,顺序查找
顺序查找一般是指在线性表中查找指定的元素。
其基本思路是:
从表中的第一元素开始,依次将线性表中的元素与被查找元素进行比较,直到两者相符,查到所要的找的元素为止;
否则,表中没有要找的元素,查找不成功。
在最好的情况下,第一个元素就是要找的元素,则比较次数为1次。
在最坏的情况下,顺序查找需要n次。
在平均的情况下,需要比较n/2次。
因此查找算法的时间复杂度为O(n)。
在下列两种情况下只能够采用顺序查找;
a如果线性表中元素的排列时无序的,则无论是顺序存储还是链式存储结构,都只能采用顺序查找;
b即便是有序线性表,若采用链式存储结构,只能进行顺序查找。
2,二分查找
使用二分查找的线性表必须满足两个条件
A顺序存储结构;
B线性表是有序表。
所谓有序表,是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)。
对于长度为n的有序线性表,利用二分查找元素x的过程如下:
(1)将x与线性表的中间项进行比较;
(2)若中间项的值等于x,则查找成功,结束查找。
(3)若x小于中间项的值,则在线性表的前半部分以二分法继续查找;
(4)若x大于中间项的值,则在线性表的后半部分以二分法继续查找;
这样反复进行查找,直到查找成功或子表长度为0(说明线性表没有这个元素)为止。
当有序线性表为顺序存储时采用二分查找的效率要比顺序查找高的多,对于长度为n的有序线性表。
在最坏的情况下,二分法查找只需要比较log2(n)次,而顺序查找需要比较n次。
考点八,排序技术
1,交换类排序法,
交换类排序法是指借助数据元素的“交换”来进行排序的一种方法。
这里介绍的冒泡排序法和快速排序法就属于交换类排序法。
a冒泡排序法。
冒泡排序的思想如下
在线性表中依次查找相邻的数据元素,将最大的元素不断往后移动,反复操作直到消除所有逆序,此时,该表已经排序结束。
冒泡排序法的基本过程如下
A从表头开始往后查找线性表,在查找的过程中逐次,比较相邻两个元素的大小。
若在相邻两个元素中,前面的元素大于后面的元素,则它将交换。
B从后向前查找剩下的线性表(除去最后一个元素)同样,在查找的过程中逐次比较相邻两个元素的大小,若在相邻两个元素中,后面的元素小于前面的元素则将他们交换。
C对剩下的线性表重复上述的过程,直到剩下的线性表为空为止,线性表排序完成。
假设线性表的长度为n则在最坏的情况下冒泡排序需要经过n/2遍从前往后扫描和n/2遍的从后往前扫描,需要比较n(n-1)/2次,其数量级为n的平方
(3)快速排序法
快速排序法的基本思路如下:
在线性表中逐个选取元素,将线性表进行分割,直到所有元素全部选取完毕此时线性表已经排序结束。
快速排序法的基本过程如下:
A从线性表中选取一个元素,设为T,将线性表后面小于T的元素移动到前面,而将大于T的移动到后面,这样就将线性表分成两个部分(称为两个子表),T就是分界线的位置,将线性表分成前后两个子表且前面子表中的所有元素均不大于T,而后面的所有元素均不小于T,此过程称为线性表的分割。
B对于割后的子表再再按上述原则进行反复的分割,直到所有的子表为空为止,则此时线性表变成有序表。
2,插入类排序法
插入类排序是指将无序的序列中的各元素依次插入到已经有序的线性表中,这里主要介绍简单的插入排序法和希尔排序法。
(1)简单插入排序法。
简单排序法是把那个待排序的元素看成一个有序的表和一个无序的表,开始时,有序表只包含一个元素,而无序表包含n-1各元素,每次取无序表中的一个元素查到有序表中的正确位置,使之成为增加一个元素的新的有序表。
插入元素时,插入位置及其后的记录依次向后移动。
最后有序表的长度为n,而无序表为空,此时排序完成。
在简单的插入排序中,每一次比较后最多移掉一个逆序,因此此方法的效率与冒泡排序法的相同在最坏的情况下简单排序法需要n(n-1)/2次比较。
(2)希尔排序法
希尔排序法的基本思路为:
将整个无序序列分割成若干个小的子序列并分别进行插入排序。
分割方法如下:
A在相隔某个增量h的元素构成一个子序列。
B在排序过程中,逐次减少这个增量,直到h减少到1时,进行一次插入排序,排序即可完成。
希尔排序法的效率与所选的增量序列有关。
3选择类排序法
选择排序的基本思路是通过每一趟从待排序序列中选出最小的元素,按顺序放在已排好的有序子表的后面,直到全部序列满足排序要求为止.
(1)简单选择排序
简单选择排序的基本思路是:
首先从所有n个待排序的数据元素中选择最小的,将该元素和第一个元素交换,再从剩下的n-1个元素中选择最小的与第二个元素进行交换,后面的依次类推。
。
最坏情况n(n-1)/2次
(2)堆排序法
堆排序的方法如下:
A将一个无序的序列建成堆。
B将堆顶元素与对堆中的最后一个元素交换,忽略已经交换到最后的那个元素,考虑前n-1个元素构成的子序列,只有左、右子树是堆,可以将该子树调整为堆。
这样反复下去做第二步,直到剩下的子序列为空时止。
在最坏的情况下堆排序需要比较的次数为O(nlog2(n))。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 知识点