【数据结构与算法】堆顶删除
创始人
2024-11-12 02:09:27

堆顶的删除

  • 一.堆顶出列的原理
  • 二.堆顶出列的实现
    • 1.覆盖最大元素并出列
    • 2.向下调整成为堆
  • 三.堆排序
  • 四,总结

一.堆顶出列的原理

还记得我们刚开始说的嘛,如果我想要拿出最大的,那么下一个最大的会花落谁家.
那么就需要用到堆顶出列的原理了.

在这里插入图片描述
然后我们再对顶节点,进行向下调整就可以了.

二.堆顶出列的实现

1.覆盖最大元素并出列

在这里插入图片描述
先将顶节点拿出,然后用最后一个元素来赋值,再对整个长度减1,那么现在最大节点(堆顶)就出列了.

2.向下调整成为堆

出列后的数组,肯定不是一个最大堆,因为最后一个值上来了,我们需要进行调整,因为其他地方都没有变,只有我们的堆顶变了,所以我们只需要考虑堆顶向下调整,也就是下标为1的地方.
在这里插入图片描述

三.堆排序

最大堆每次都是最大的元素出列,那么就形成了一种排序的效果.

在这里插入图片描述
这是一种复杂度为log n的方法,效率很高.
同时,这种比较如果用在优先级里面,效率也很高,那么优先级队列用堆来实现也不错.

四,总结

删除堆的操作可以分为两个步骤:删除根节点和调整堆。

1.删除根节点:

  • 将根节点与最后一个节点进行交换;
  • 删除最后一个节点;
  • 更新堆的大小。

2.调整堆:

  • 从根节点开始,与其子节点比较,找到较大(小)的子节点;
  • 如果根节点小于(大于)子节点,则交换两者的值;
  • 重复上述步骤,直到节点没有子节点或满足堆的性质。

删除堆的操作时间复杂度为O(log n),其中n是堆的大小。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...