小顶堆时间复杂度_图解:最小堆构建、存储、插入、删除过程

本文介绍了小顶堆的原理,包括最小堆的概念、构建过程、存储方式、插入和删除操作。堆排序是一种利用堆数据结构的排序算法,最小堆在排序中起关键作用。在数组中,通过调整节点保持小根堆性质,插入元素时从末尾添加并向上调整,删除元素则将末尾值移到根节点后向下调整。虽然堆的搜索性能不如二叉排序树,但在动态排序场景下,堆提供了高效的解决方案。
摘要由CSDN通过智能技术生成
堆排序是由1991年的计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特.弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了的一种排序算法( Heap Sort );

堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。

最小堆

最小堆是一棵完全二叉树,非叶子结点的值不大于左孩子和右孩子的值。最小堆示例如下:

b394fc6e2d4fac5ae41abe7221df1282.png

最小堆的构建

从末尾节点的父节点的这棵树开始调整,根据小根堆的性质,越小的数据往上移动,注意,被调整的节点还有子节点的情况,需要递归进行调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值