堆排序是基于数组和二叉树思想实现的(二叉树是脑补结构,实际是数组) 堆排序过程 1、数组建成大根堆,首先,遍历所有结点,当前结点index和父结点(index-1)/ 2 比较 (当前数组的下标是index,此结点的父结点的下标就是(index-1)/ 2 ),如果比父结点大,交换,变成父结点的位置再和上一层的父结点比较,直到满足大根...
AdjustUp建堆时,节点少的层移动的多,节点多的层移动的少;而AdjustDown建堆时,节点多的层移动的少。节点少的层移动的多。 2.3 排序 堆建好之后就来到了排序。这里我们采用HeapPop的思想进行排序,其流程如下图: 通过上图我们发现,当需要将数组排成升序时,就建大堆;当需要将数组排成降序时,就建小堆。 代码实...