堆排序
1. 堆的定义
堆是二叉树的一种,其分为大顶堆和小顶堆
-
大顶堆:
每个节点的值都大于其左右子节点
-
小顶堆:
每个节点的值都小于其左右子节点
通常,做堆排序时,升序会采用大顶堆,降序采用小顶堆。
2. 算法说明
以升序排列为例,其排序过程分为如下步骤:
1.构造顶堆,此时根节点为最大值
2.将根节点与末尾节点交换,即将根节点下沉
3.将剩余节点重新构造为大顶堆
不断循环2、3两步,直到根节点比剩余节点的末尾节点小,即排序完成
堆是二叉树的一种,其分为大顶堆和小顶堆
每个节点的值都大于其左右子节点
每个节点的值都小于其左右子节点
通常,做堆排序时,升序会采用大顶堆,降序采用小顶堆。
以升序排列为例,其排序过程分为如下步骤:
1.构造顶堆,此时根节点为最大值
2.将根节点与末尾节点交换,即将根节点下沉
3.将剩余节点重新构造为大顶堆
不断循环2、3两步,直到根节点比剩余节点的末尾节点小,即排序完成