Heap Sort
2018-11-21 本文已影响0人
Goooooooooooal
大顶堆,小顶堆
-
初始化堆,从下向上,开始位置为n/2-1,因为二叉树最后1个有子节点的节点的index为n/2-1
-
交换root位置(当前最大值) 和 最后1个位置的值, 每1次操作,相当于将当前最大值放到待排序数组对应位置;
交换后,需要调整。因为数组最后1个值被放到了root位置,它与左右节点的大小未知,需要调整;调整后带来的连带反应也会导致子树的root 和 左右节点大小关系位置,也需要调整。 和初始化堆不同,在这的调整,是从上到下调整
- 重复2的过程,直到数组中所有元素排序成功
左: root2+1
右: root2+2