计算机数据结构考研知识点:堆排序

中公考研 2023年08月29日 14:37:43

      准备报考考研计算机专业的考生需要复习哪些知识点呢?考研计算机栏目为各位考生提供了“计算机数据结构考研知识点:堆排序”相关备考资料,希望可以给各位考生提供参考。

      堆排序

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

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

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

      1.建大根堆

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

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

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

      5.递归调整到叶子的时候,树就是大根堆了。

      免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。

      分享:

      分享到微信朋友圈

打开微信,点击底部的“发现”,
      使用“扫一扫”即可将网页分享至朋友圈。