全国计算机二级考试基础知识.

上传人:花**** 文档编号:144002134 上传时间:2020-09-04 格式:DOC 页数:26 大小:107KB
返回 下载 相关 举报
全国计算机二级考试基础知识._第1页
第1页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《全国计算机二级考试基础知识.》由会员分享,可在线阅读,更多相关《全国计算机二级考试基础知识.(26页珍藏版)》请在金锄头文库上搜索。

1、1算法的基本概念1、算法一般应具有以下几个基本特征:可行性、确定性、有穷性、拥有足够的情报。算法是对解题方案的准确而完整的描述,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效和明确的,此顺序将在有限的次数下终止。2、算法的基本要素(1)算法中对数据的运算和操作。通常有4类:算术运算,逻辑运算,关系运算和数据传输。(2)算法的控制结构。算法的功能不仅仅取决于所选择的操作,还与操作之间的执行顺序及算法的控制结构有关。3、算法设计基本方法算法设计的基本方法有列举法、归纳法和递推法、递归法和减半递推技术。4、算法的复杂度(在算法正确的前提下,评价算法的标准)(1)算法的时间复杂度算法的时间复杂

2、度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数。(2)算法的空间复杂度算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。数据结构,直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。数据之间的相互关系称为逻辑结构。通常分为4类基本逻辑结构,即集合、线性结构、树形结构和图状结构或网状结构。存储结构图是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机有

3、两种,即顺序存储结构和链式存储结构。时间复杂度与空间复杂度之间没有必然的联系。2数据结构基本概念1、 数据结构是指反映数据元素之间的数年据元素集合的表示。2、 所谓数据的逻辑结构,是指所映数据元素之间逻辑关系的数据结构。数据的逻辑结构有两个要素:一是数据元素的集合;二是数据元素之间的关系。3、 各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。3线性表和线性链表1、 线性结构与非线性结构 根据数据结构中各数据元素之间前后件关系复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一

4、个非空的数据结构满足下列两个条件:(1) 有且只有一个根结点。(2)每一个结点最多有一个前件,也最多有一个后件。 则称该数据结构不是线性结构,则称之为非线性结构。如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字2、 线性表的基本概念 线性表是由n(n=0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。3、线性表的顺序存储结构线性表的顺序存储结构具有以下两个基本特点:线性表中所有元素所占的存储空间是连续的。线性表中各数据元素在存储结构中,其前后件两个元素在存储空间中是紧邻的,

5、且前件元素一定存储在后件元素的前面。在顺序存储结构中,线性表中每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定。3、 线性链表 大的线性表,特别是元素变动频繁的大线性表不宜采用顺序存储结构,而应采用链式存储结构。在链式存储结构中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针于指向该结点的前一个或后一个结点。在链式存储结构称为线性链表。一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。栈和队列也是线性表,也可以采用链式存储结构。4、 线

6、性链表的基本运算 线性链表的基本运算有:在非空线性链表中寻找包含指定元素值X的前一个结点P,线性链表的插入,线性链表的删除。5、 循环链表及其基本运算循环链表的结构与一般的单链表相比,具有以下两个特点:(1) 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。(2) 循环链表中最后一个结点的指针域不是空,而是指向表头结点。(3) 在单链表中,增加头结点的目的是方便运算的实现。(4) 循环链表的主要优点是从表中任一结点出发都能访问到整个链表。(5) 线性表的顺序存储结构和线性表的链式存储结构分别是随机存取的存储结构

7、、顺序存取的存储结构4栈和队列栈是限定在一端进行插入与删除的线性表。栈是按照“先进后出”或“后进先出”的原则组织数据的。栈的运算、退栈运算、读栈顶元素。队列是是允许在一端进行插入、而在另一端进行删除的线性表。队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上环状空间,供队列循环使用。循环队列的初始状态为空,即rear=front=m。循环队列主要有两个基本运算:入队运算和退队运算。5树与二叉树1、 树的基本概念 树是一种简单的非线性结构。树结构中,每一个结点只有一个前件,称为父结点。在树中,没前件

8、的结点只有一个,称为树的根结点,简称为树的根。在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。在树结构中,一个结点所拥有的后件个数称为结点的度。树结构具有明显的层次关系,树是是一种层次结构。根结点在第1层。同一层上所有结点的所有子结点在下一层。树的最大层次称为树的深度。在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。要树中,叶子结点没有子树。2、 二叉树的特点(1) 非空二叉树只有一个根结点;每一个结点最多有两个棵子树,且分别称为该结点的左子树与与右子树。(2) 在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉

9、树。而树结构中的每一个结点的度可以是任意的。另外,二叉树中的每一个结点的子树被明显地分为左子树与右子树。在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即是叶子结点。3、 二叉树的性质(1) 在二叉树的第K层上,最多有2 k-1(k1)个结点。(2) 深度为m的二叉树最多有2 m-1个结点。(3) 在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。(4) 具有n个结点的二叉树,其深度至少为log2n+1,其中log2n表示取log2n的整数部分。4、 满二叉树与完全二叉树(1) 满二叉树,除最后一层

10、外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2 k-1个结点,且深度为m的满二叉树有2 m-1个结点。(2) 完全二叉树。除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1.满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。具有n个结点的完全二叉树的深度为log2n+1。5、 二叉树的存储结构 二叉树通常采用链式存储结构。与线性链

11、表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域与指针域。6、 二叉树的遍历 二叉树的遍历是指不重复地访问二叉树中的所有结点。在遍历二叉树的过程中,一般先遍历左子树,然后再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为3种:前序遍历、中序遍历、后序遍历。(1) 前序遍历(DLR)。所谓前序遍历是首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。因此,前序遍历二叉树的过程是一个递归的过程。(2) 中序遍历(LDR)。所谓中序遍历是首先遍历左子树,然后访问根结点,最后遍历右子树;并且

12、,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。因此,中序遍历二叉树的过程也是一个递归的过程。(3) 后序遍历(LRD)。所谓后序遍历是首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后右子树,最后访问根结点。因此,后序遍历二叉树的过程也是一个递归的过程。6查找技术1、顺序查找顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素。如果线性表中的第一个元素就是被查找的元素,则只需做一次比较就查找成功,最坏的情况是被查元素是线性表中的最后一个元素,或者被查元素在线性表中根本不存在,则为了查找这个元素需要与线性表中所有的

13、元素进行比较。平均情况下,利用顺序查找法在线性表中查找一个元素,大约要与线性表中一半的元素进行比较。2、二分法查找二分法查找只适用于顺序存储的有序表。设有序线性表的长度为n,被查元素为x,则对分查找的方法为:将x与线性表的中间项进行比较,如果中间项的值等于x,则说明查到,查找结束;如果x小于中间项的值,则在线性表的前半部分以相同的方法进行查找;如果大于中间项的值,则在线性表的后半部分以相同的方法进行查找,这个过程一直进行到查找成功或子表长度为0(说明线性表中没有该元素)为止。当有序线性表为顺序存储时才能采用二分查找,效率比顺序查找高得多。对于长度为n的有序线性表,在最坏的情况下,二分查找只需要

14、比较log2n次。最简单的交换排序方法是冒泡排序法。7排序技术排序是指将一个无序序列整理成按值非递减顺序排序的有序序列。1、 交换类排序法 交换类排序法是指借助数据元素之间的互相交换进行排序的一种方法。冒泡排序法和快速排序法都属于交换类的排序方法。(1) 冒泡排序。假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。(2) 快速排序。快速排序法的基本思想为:从线性表中选取一个元素,设为T,将线性表后面小于T的元素移到前面,而前面大于T的元素移到后面,结果就将线性表分成了两部分,T插入到分界线的位置处,这个过

15、程称为线性表的分隔。如果对分割后的各子表再按上述原则进行分割,并且,这种分割过程可以一直做下去,直到所有子表为空为止,则此时的线性表就变成了有序表。2、 插入排序法 所谓插入排序,是指将无序序列中的各元素依次插入到已经有序的线性表中。(1) 简单插入排序法。在简单插入排序中,每一次比较后最多移掉一个逆序,因此,这种排序方法的效率与冒泡排序法相同。在最坏情况下,简单插入排序需要n(n-1)/2次比较。(2) 希尔排序法。希尔排序的效率与所选取的增量序列有关。如果选取上述增量序列,则在最坏情况下,希尔排序所需要的比较次数为O(n1.5).3选择类排序(1) 简单选择排序。简单选择排序在最坏情况下需要比较n(n-1)/2次。(2) 堆排序。在最坏情况下,堆排序需要比较的次数为O(nlog2n)。4常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。8程序设计方法与风格1、 源程序文档化(1) 符号的命名:符号名应具有一定的实际含义,以便于对程序功能的理解。(2) 程序注释:正确的注释能够帮助读者理解程序。注释一般分为序言性注释和功能性注释。(3) 视觉组织:为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。2、 数据说明的方法 数据说明

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号