调整大根堆(只考过一次)
- 大根堆实际上还是数组
- 双亲结点,左孩子结点,右孩子结点为一组
- 先寻找最后的一组
- 每一次先比较两个孩子谁大
- 然后较大的孩子与双亲比较
6. 双亲大,就跳到下一组,直到根
7. 孩子大,交换孩子,双亲。
8. 检查受改变的孩子的组有没有变
void AdjustDown(int A[], int length, int i) {
if(2 * i >= length) {
return;
}
int maxChildIdx = 2 * i;
if(2i+1 < length && A[2 * i] > A[2 * i