全国统一24小时咨询服务热线
01 堆排序
大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是最大的。而且显然大根堆的任一棵子树也是大根堆。
堆排序的基本思想:记录区的分为无序区和有序区前后两部分;用无序区的数建大根堆,得到的根(最大的数)和无序区的最后一个数交换,也就是将该根归入有序区的最前端;如此重复下去,直至有序区扩展至整个记录区。
具体操作可按下面步骤实现:
1.建大根堆
2.交换根和无序区最后一个数
3.重建大根堆,因为交换只是使根改变了,所以左右子树依然分别是大根堆。
4.比较根,左子树的根和右子树的根,如果根最大,则无须再作调整,树已经是大根堆了;如果左子树的根最大,交换它与根,再递归调整左子树;如果右子树的根最 大,交换它与根,再递归调整右子数。
5.递归调整到叶子的时候,树就是大根堆了。
02 带权图的最短路径算法及应用
迪杰斯特拉(Dijkstra)算法求单源最短路径,算法思想:
设S为最短距离已确定的顶点集(看作红点集),V-S是最短距离尚未确定的顶点集(看作蓝点集)。
1.初始化:初始化时,只有源点s的最短距离是已知的(SD(s)=0),故红点集S={s},蓝点集为空。
2.重复以下工作,按路径长度递增次序产生各顶点最短路径,在当前蓝点集中选择一个最短距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的次序产生各顶点的最短路径。
当蓝点集中仅剩下最短距离为∞的蓝点,或者所有蓝点已扩充到红点集时,s到所有顶点的最短路径就求出来了。
注意:①若从源点到蓝点的路径不存在,则可假设该蓝点的最短路径是一条长度为无穷大的虚拟路径。
②从源点s到终点v的最短路径简称为v的最短路径;s到v的最短路径长度简称为v的最短距离,并记为SD(v)。
以上便是武汉文都考研小编为大家整理的“2022计算机考研【数据结构】知识点2”相关内容,更多疑问可以关注武汉文都官方网站。
武汉文都考研为考研党们及时发布新鲜、有料且干货满满的备考资料及考研资讯,助征战研究生考试的考生们一臂之力。关注武汉文都考研官网【wh.wendu.com】,持续了解更多考研相关内容。研途漫漫,文都考研伴你同行,今年我们一研为定,明年定为研一!
免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。