news 2026/3/8 0:10:53

计算机等级考试—数组构建大顶队—东方仙盟

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机等级考试—数组构建大顶队—东方仙盟

一步步构建大顶堆

  1. 初始数组A = [2, 8, 7, 1, 3, 5, 6, 4]
  2. 堆的结构:数组长度为 8,完全二叉树的最后一个非叶子节点索引为⌊8/2⌋ - 1 = 3,所以我们从索引 3 开始,依次向上调整。

步骤 1:调整索引 3(值为 1)

  • 子节点:索引 7(值为 4)
  • 4 > 1 → 交换,数组变为:[2, 8, 7, 4, 3, 5, 6, 1]

步骤 2:调整索引 2(值为 7)

  • 子节点:索引 5(值为 5)、索引 6(值为 6)
  • 7 > 5 且 7 > 6 → 无需交换

步骤 3:调整索引 1(值为 8)

  • 子节点:索引 3(值为 4)、索引 4(值为 3)
  • 8 > 4 且 8 > 3 → 无需交换

步骤 4:调整索引 0(值为 2)

  • 子节点:索引 1(值为 8)、索引 2(值为 7)
  • 8 > 2 → 交换,数组变为:[8, 2, 7, 4, 3, 5, 6, 1]
  • 继续调整索引 1(值为 2):子节点索引 3(值为 4)、索引 4(值为 3)
  • 4 > 2 → 交换,数组变为:[8, 4, 7, 2, 3, 5, 6, 1]
  • 继续调整索引 3(值为 2):子节点索引 7(值为 1)
  • 2 > 1 → 无需交换

什么是大顶堆(Max Heap)

大顶堆是一种完全二叉树结构,满足两个核心条件:

  1. 结构上:是一棵完全二叉树,即除了最后一层,其他层的节点都被填满,且最后一层的节点尽量靠左排列。
  2. 堆性质:每个父节点的值大于或等于它的所有子节点的值,因此堆顶(根节点)是整个堆中的最大值。

在数组表示中:

  • 对于索引为i的节点:
    • 左子节点索引:2i + 1
    • 右子节点索引:2i + 2
    • 父节点索引:⌊(i-1)/2⌋

二、用 Mermaid 图展示大顶堆构建过程

初始数组:A = [2, 8, 7, 1, 3, 5, 6, 4]

1. 初始完全二叉树(未满足堆性质)

graph TD A((2)) --> B((8)) A --> C((7)) B --> D((1)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((4))

2. 调整最后一个非叶子节点(索引 3,值为 1)

graph TD A((2)) --> B((8)) A --> C((7)) B --> D((4)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

(交换 1 和 4,使子节点不大于父节点)

3. 调整索引 2(值为 7)

graph TD A((2)) --> B((8)) A --> C((7)) B --> D((4)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

(7 ≥ 5 且 7 ≥ 6,无需交换)

4. 调整索引 1(值为 8)

graph TD A((2)) --> B((8)) A --> C((7)) B --> D((4)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

(8 ≥ 4 且 8 ≥ 3,无需交换)

5. 调整根节点(索引 0,值为 2)

graph TD A((8)) --> B((2)) A --> C((7)) B --> D((4)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

(交换 2 和 8,使根节点为最大值)

6. 继续调整索引 1(值为 2)

graph TD A((8)) --> B((4)) A --> C((7)) B --> D((2)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

(交换 2 和 4,使父节点值≥子节点)

最终大顶堆(数组:[8, 4, 7, 2, 3, 5, 6, 1]

graph TD A((8)) --> B((4)) A --> C((7)) B --> D((2)) B --> E((3)) C --> F((5)) C --> G((6)) D --> H((1))

阿雪技术观

在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者。无论是分享代码、撰写技术博客,还是参与开源项目维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基生命,为科技进步添砖加瓦。

Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets, hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 12:49:24

MGeo模型支持多线程吗?并发请求压力测试与调优教程

MGeo模型支持多线程吗?并发请求压力测试与调优教程 1. 引言:MGeo是什么,能解决什么问题? 你有没有遇到过这样的场景:两个地址看起来差不多,但写法完全不同——“北京市朝阳区建国路88号”和“北京朝阳建国…

作者头像 李华
网站建设 2026/3/7 11:58:43

Speech Seaco Paraformer模型体积分析:参数量与加载时间关系研究

Speech Seaco Paraformer模型体积分析:参数量与加载时间关系研究 1. 研究背景与目标 语音识别技术近年来在工业界和学术界都取得了显著进展,尤其是基于Transformer架构的模型如Paraformer,在中文语音识别任务中表现突出。Speech Seaco Para…

作者头像 李华
网站建设 2026/2/28 13:41:56

GPU加速每张仅3秒,科哥AI抠图速度实测报告

GPU加速每张仅3秒,科哥AI抠图速度实测报告 1. 实测背景与核心亮点 最近在做一批电商产品图的处理任务,手动抠图效率太低,一张图就得花几分钟,还容易边缘不干净。朋友推荐了“科哥”开发的这款 cv_unet_image-matting图像抠图 we…

作者头像 李华
网站建设 2026/3/4 4:40:46

Paraformer-large离线识别部署卡顿?环境配置避坑指南

Paraformer-large离线识别部署卡顿?环境配置避坑指南 1. 为什么你的Paraformer部署会卡顿? 你是不是也遇到过这种情况:明明用的是高性能GPU服务器,部署完Paraformer-large语音识别模型后,一上传音频就开始卡顿&#…

作者头像 李华
网站建设 2026/3/5 6:18:47

unet支持移动端吗?响应式界面适配进展预告

unet支持移动端吗?响应式界面适配进展预告 1. 功能概述 本工具基于阿里达摩院 ModelScope 的 DCT-Net 模型,支持将真人照片转换为卡通风格。项目名为 unet person image cartoon compound,由开发者“科哥”构建并持续维护,致力于…

作者头像 李华
网站建设 2026/3/4 4:30:33

B站下载终极指南:BiliTools跨平台工具箱完整使用教程

B站下载终极指南:BiliTools跨平台工具箱完整使用教程 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliT…

作者头像 李华