22计算机考研辅导之数据结构—堆排序
2021-10-20 13:15:29
计算机的竞争度逐年加大,报考学生越来越多,对于打算报考2022考研计算机的考生们来说复习是难点。下面海文考研老师整理了2022考研计算机数据结构:堆排序,一起来看看吧。
堆排序
大根堆的定义:完全二叉树,任一非叶子结点都大于等于它的孩子,也就是说根结点是zui大的。而且显然大根堆的任一棵子树也是大根堆。
堆排序的基本思想:记录区的分为无序区和有序区前后两部分用无序区的数建大根堆,得到的根(zui大的数)和无序区的zui后一个数交换,也就是将该根归入有序区的zui前端如此重复下去,直至有序区扩展至整个记录区。
具体操作可按下面步骤实现:
1.建大根堆
2.交换根和无序区zui后一个数
3.重建大根堆,因为交换只是使根改变了,所以左右子树依然分别是大根堆。
4.比较根,左子树的根和右子树的根,如果根zui大,则无须再作调整,树已经是大根堆了如果左子树的根zui大,交换它与根,再递归调整左子树如果右子树的根zui大,交换它与根,再递归调整右子数。
5.递归调整到叶子的时候,树就是大根堆了。
(内容来源于网络,由成都海文考研收集整理,具体情况以学校官网为准,侵权必删!)