算法015_堆排序的过程演示

2024-02-01  本文已影响0人  为宇绸缪

堆排序过程

原始的堆


把最大的数给移开


为了防止把数移上去出现空位,所以把堆最后一个位置的元素给移动上去。这样可以继续利用堆的向下调整性,也可以保证不出现空位

然后利用向下调整性,把剩下的最大的数给移动上去


然后再把此时最大的数 8 给移出去


接下来依然是把最后一位移上去,满足了向下调整的条件


继续调整堆


然后把最大的 7 给移动上去,在把 7 拿出去,2 移到最上面

然后调整


拿掉最大的


最后面的 1 移动上去


把 5 拿出去,然后把最后面的 0 给移动上去


调整堆


把 4 移动出去,再把最后一个数给移动上去



调整堆


把 3 移出去,然后把最后一位 1 给移上去


然后调整


把 2 移动出去,把最右侧的 0 给移动上去


接着调整


然后把 1 给 移动出去,就剩个 0 ,然后就把 0 也移动出去,就完成排序了

上一篇下一篇

猜你喜欢

热点阅读