大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←
一.堆排序的原理
最大堆或者最小堆每次的堆顶都是最大值或者最小值,在堆顶的删除和出列中,我们其实就相当于实现了堆的排序.
那么我们能不能直接在原有数组上,将数组的元素变成升序或者降序呢?
当然是可以的我们用图解来看:
其实和堆的删除差不多,只不过我们不是直接将堆顶删除,而是将堆顶的值保存在堆末尾.
二.堆排序的实现
直接在原数组中进行排序.
对换堆顶与堆末的值,然后调整成最大堆,将堆长度减1,直到size=0
三.排序结果
运行结果;
四.总结
堆的排序,我们都要想办法将堆顶进行操作!