icimence / icimence.github.io

icimence's Tech blog
https://icimence.github.io/
2 stars 0 forks source link

排序算法之堆排序 | Icimence's Tech Blog #12

Open icimence opened 4 years ago

icimence commented 4 years ago

https://icimence.cn/2020/05/01/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95%E4%B9%8B%E5%A0%86%E6%8E%92%E5%BA%8F/

堆排序原理  堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。 第一步 构造初始堆 假设给定无序序列结构如下 此时我们从最后一个非叶子结点开始(叶结点自然不用调整,第一个非叶子结点