目录
学习堆排序之前,先回顾以下概念:
1️⃣概念回顾
二叉树:
二叉树是指树中节点的度不大于2的有序树。
(节点的度:一个节点拥有子树的数目称为节点的度)
(分枝结点: 度不为0的结点)
完全二叉树:
完全二叉树是指:二叉树上每一层都是满的,或者最后一层没填满并且最后一层的叶子节点集中在树的左部。
例如:
(需要注意的是,满二叉树肯定是完全二叉树,而完全二叉树不一定是满二叉树。)
大根堆
每个结点的值都大于等于其左、右孩子的值。
小根堆
每个结点的值都小于等于其左、右孩子的值。
2️⃣堆排序
堆排序使用的是二叉堆的概念,二叉堆是一颗完全二叉树。
思考:从逻辑层面,如何将需要排序的数组转换成完全二叉树的形式?