Advertisement

数据结构-排序-堆式排序算法

阅读量:

算法:(只支持从小到大排序)

已知父节点,可推导出子节点:左子节点对应公式为(2n+1),右子节点对应公式为(2n+2);若已知子节点为n,则其父节点可通过公式(n-1)/2进行计算。

时间复杂度分析:nlog₂n

步骤概述

构建大根堆>>>持续进行调整(从最小的根堆开始,确保父节点的值大于子节点,逐步形成大根堆)

  • 交换–>>调整(在完成大根堆的构建后,将0号下标对应的元素依次与最后一个下标处的元素进行交换,这样最大值会被移动到最后的位置。随后再次进行调整,使得次大的值会出现在0号下标位置)
在这里插入图片描述
在这里插入图片描述

代码实现

复制代码
    package sort;
    
    import java.util.Arrays;
    import java.util.Random;
    
    /** * @C

全部评论 (0)

还没有任何评论哟~