堆排序问题

堆排序问题

最近回顾算法,看了一下堆排序的原理,有点小疑问,求大神解答。

具体问题如下:

以升序为例,我们需要构建一个大顶堆,在构建过程中,我们需要对每一个非叶子节点进行及其左右子节点进行比较,找到其最大值,并进行相应的交换。而在每次交换完成后,又需要对交换了的子节点再进行一次交换。
有一个无序数组[4,6,8,5,9],构建的顺序二叉树如图。
在这里插入图片描述
我们需要将6和9交换,得到结果如图:
在这里插入图片描述
问题来了,此时我们其实已经得到了堆顶元素最大值9,其实可以直接将它与6进行交换,然后再对剩余部分进行上述操作,那么我们为什么还要去将4和6进行交换,得到一个标准的大顶堆,然后再将4和9交换呢?