堆排序

1. 堆的定义: 

在一颗完全二叉树中,每一个根节点的值均大于(或小于)其左右子树根节点的值,被称为堆。堆分为两种类型:大根堆和小根堆。

其中每一棵子树的根节点的值大于等于左右子树节点的值,被称大根堆。如果是每个节点的值均小于等于左右节点的值,被称为小根堆。

 

2. 堆排序的过程:

首先,将需要排序的数组映射成一个完全二叉树。“映射”在这里是指完全不需要构建另外的数据结构,只需要把数组“想象”成一棵完全二叉树。

怎么做呢?想想看,一个完全二叉树的顺序表示就是用数组实现的。所以只要逆过来看就可以:数组中每一个元素对应一个节点,对于一个下标为n的节点,其左孩子的下标为2*n+1,右孩子2的下标为2*n+2,记住这个映射关系就可以。(待续)

原文链接:https://blog.csdn.net/qq_41219157/article/details/123306783

posted @ 2023-04-21 20:19  Jocelynn  阅读(38)  评论(0)    收藏  举报