2019计算机考研专业课核心考点梳理 您所在的位置:网站首页 交集的表示方法 2019计算机考研专业课核心考点梳理

2019计算机考研专业课核心考点梳理

2023-03-27 11:51| 来源: 网络整理| 查看: 265

当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。  

注意:①若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径。②从源点s到终点v的最短路径简称为v的最短路径;s到v的最短路径长度简称为v的最短距离,并记为SD(v)。

五、堆排序

大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是最大的。而且显然大根堆的任一棵子树也是大根堆。  

堆排序的基本思想:记录区的分为无序区和有序区前后两部分;用无序区的数建大根堆,得到的根(最大的数)和无序区的最后一个数交换,也就是将该根归入有序区的最前端;如此重复下去,直至有序区扩展至整个记录区。  

具体操作可按下面步骤实现:  

1.建大根堆。  

2.交换根和无序区最后一个数。  

3.重建大根堆,因为交换只是使根改变了,所以左右子树依然分别是大根堆。  

4.比较根,左子树的根和右子树的根,如果根最大,则无须再作调整,树已经是大根堆了;如果左子树的根最大,交换它与根,再递归调整左子树;如果右子树的根最大,交换它与根,再递归调整右子数。  5.递归调整到叶子的时候,树就是大根堆了。

六、各类排序算法的特点及比较

几种主要的排序算法:冒泡排序、选择排序、插入排序、快速排序、归并排序、Shell排序、堆排序等。  

冒泡排序算法思想:将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。  

所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。  

选择排序算法思想:选择排序的基本思想是对待排序的记录序列进行n-1遍的处理,第i遍处理是将L[i..n]中最小者与L[i]交换位置。这样,经过i遍处理之后,前i个记录的位置已经是正确的了。  

插入排序算法思想:经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i]又是排好序的序列。  

快速排序算法思想:快速排序的基本思想是基于分治策略的。  对于输入的子序列L[p..r],如果规模足够小则直接进行排序,否则分三步处理:1.分解(Divide):将输入的序列L[p..r]划分成两个非空子序列L[p..q]和L[q+1..r],使L[p..q]中任一元素的值不大于L[q+1..r]中任一元素的值。2.递归求解(Conquer):通过递归调用快速排序算法分别对L[p..q]和L[q+1..r]进行排序。3.合并(Merge):由于对分解出的两个子序列的排序是就地进行的,所以在L[p..q]和L[q+1..r]都排好序后不需要执行任何计算L[p..r]就已排好序。  归并排序算法思想:分而治之(divide-conquer)。  每个递归过程涉及三个步骤:1.分解,把待排序的n个元素的序列分解成两个子序列,每个子序列包括n/2个元素。2.治理,对每个子序列分别调用归并排序MergeSort,进行递归操作。3.合并,合并两个排好序的子序列,生成排序结果。  Shell排序算法思想:算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。  堆排序算法思想:用大根堆排序的基本思想:1.先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区。2.再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key。3.由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整为堆。

七、二叉树及其遍历

从二叉树结构的整体看,二叉树可以分为根结点,左子树和右子树三部分,只要遍历了这三部分,就算遍历了二叉树。设D表示根结点,L表示左子树,R表示右子树,则DLR的组合共有6种,即DLR,DRL,LDR,LRD,RDL,RLD。  若限定先左后右,则只有DLR,LDR,LRD三种,分别称为先(前)序法(先根次序法),中序法(中根次序法,对称法),后序法(后根次序法)。三种遍历的递归算法如下:  1.先序法(DLR)  若二叉树为空,则空操作,否则:访问根结点-->先序遍历左子树-->先序遍历右子树。  2.中序法(LDR)  若二叉树为空,则空操作,否则:中序遍历左子树-->访问根结点-->中序遍历右子树。  3.后序法(LRD)  若二叉树为空,则空操作,否则:后序遍历左子树-->后序遍历右子树-->访问根结点。八、完全二叉树中有关结点个数计算

完全二叉树的定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。  完全二叉树的叶子数为(n+1)/2取下整。

九、森林与二叉树之间的转换以及转换过程中结点之间的关系

将一棵树转换为二叉树的方法是:  1.树中所有相邻兄弟之间加一条连线。  2.对树中的每个结点,只保留其与第一个孩子结点之间的连线,删去其与其它孩子结点之间的连线。  3.以树的根结点为轴心,将整棵树顺时针旋转一定的角度,使之结构层次分明。  森林转换为二叉树的方法如下:  1.将森林中的每棵树转换成相应的二叉树。  2.第一棵二叉树不动,从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连在一起后,所得到的二叉树就是由森林转换得到的二叉树。  树和森林都可以转换为二叉树,二者的不同是:树转换成的二叉树,其根结点必然无右孩子,而森林转换后的二叉树,其根结点有右孩子。将一棵二叉树还原为树或森林,具体方法如下:  1.若某结点是其双亲的左孩子,则把该结点的右孩子、右孩子的右孩子、……都与该结点的双亲结点用线连起来。  2.删掉原二叉树中所有双亲结点与右孩子结点的连线。3.整理由1、2两步所得到的树或森林,使之结构层次分明。

十、对无向连通图特性的理解

无向图的每条边,在顶点计算度的过程中,都要两次参与计算(与边两关联的2个顶点),因此所有顶点的度之和为偶数。  具有n个顶点的无向连通图,其边数大于或等于n-1。  在无向连通图中,所有顶点的度数都有可能大于1。

十一、对m阶B树定义的理解

一棵m阶的B树满足下列条件:  1.每个结点至多有m棵子树。  2.除根结点外,其它每个分支至少有m/2棵子树。  3.根结点至少有两棵子树(除非B树只有一个结点)。  4.所有叶结点在同一层上。B树的叶结点可以看成一种外部结点,不包含任何信息。  5.有j个孩子的非叶结点恰好有j-1个关键码,关键码按递增次序排列。结点中包含的信息为∶(p0,k1,p1,k2,p2,…,kj-1,pj-1),其中,ki为关键码。  以上就是计算机考研专业课的核心考点梳理,希望对要考计算机的同学有所帮助,提升复习效率。

大家如果考研中有任何问题可以加我的扣扣:壹玖贰陆叁肆陆叁叁肆,能帮助的一定帮,最后祝天下所有考研学子心想事成!返回搜狐,查看更多



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有