8大排序之-------堆排序与时间复杂度

堆排序是一种基于完全二叉树的排序算法,分为最大堆和最小堆。最大堆中父节点键值大于或等于子节点,最小堆反之。在最小堆排序的例子中,不断将最小元素移至末尾,直到所有元素排序完成。代码实现和时间复杂度分析显示,堆排序的平均和最好情况时间复杂度均为O(nlogn)。
摘要由CSDN通过智能技术生成

                                                      堆排序

--------------------------------------------------

    在介绍堆排序之前先介绍一下什么是完全二叉树,完全二叉树就是在第n层被填满之前,不会开始填第n+1层深度,并且是从左向右填满


----------------------------------------------------------------------------

(一)什么是堆排序?堆排序就是利用完全完全二叉树()的性质进行排序。又分为最大堆和最小堆

最大堆:父节点的键值总是大于或者等于任何一个子节点的键值

最小堆:父节点的键值总是小于或者等于任何一个子节点的键值

堆排序的过程

           比如我们现在要排序   int [] a={17,8,45,84,2,94};


我们这道例子拿最小堆作

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值