首先在了解堆排序前,我们要知道什么是完全二叉树,什么是堆
一、完全二叉树
完全二叉树是一种特殊的二叉树。从上到下,从左到右,每一层的节点都是满的,最下边一层所有的节点都是连续集中在最左边
二、堆
堆排序分为两种,分别是大顶堆和小顶堆。
大顶堆:在完全二叉树的基础上,每个结点的值都大于或等于其左右孩子结点的值
小顶堆:在完全二叉树的基础上,每个结点的值都小于或等于其左右孩子结点的值
三、堆排序的特点
堆排序是利用堆这种数据结构而设立的一种排序算法
(这个地方需要将数据的下标放在树的一旁(目的是为了让同学们知道规律是怎么知道的))
我们可以看到以下的规律
基本思想
1):将带排序的序列构造成一个大顶堆,根据大顶堆的性质,当前堆的根节点(堆顶)就是序列中最大的元素
2):将堆顶元素和最后一个元素交换,然后将剩下的节点重新构造成一个大顶