当前位置: 首页 > news >正文

堆排序以及实现

一,堆的概念

我们会接触到很多不同的关于堆的概念,这里我们要讲的是数据结构中的堆

1.概念:堆是一种基于完全二叉树的特殊数据结构

2.通常有两种数据类型

a.大顶堆(Max-Heap)

根节点大于他的孩子节点

b.小顶堆(Max-Heap)

孩子节点大于他的根节点

二,代码逻辑

1.插入逻辑

我们之前学过二叉树,如果从索引1开始按照从上到下,从左到右的顺序将元素存入一张表,那他们的父节点、当前节点、左孩子、右孩子的索引满足规律[i/2,i,2i,2i+1]

在代码实现过程中就可以用上这一规律,下图是小顶堆的实现逻辑

2.删除逻辑

假如要删除上图中的1,删除后的效果为下图2

图1

图2

http://www.lryc.cn/news/618819.html

相关文章:

  • 基于多模态大模型的个性化学习路径生成系统研究
  • 【motion】身体动作与面部表情捕捉2:Motion-X++ 论文分析
  • 过程设计工具深度解析-软件工程之详细设计(补充篇)
  • MyBatis 缓存与 Spring 事务相关笔记
  • redis的过期策略和定时器
  • Cloud Computing(云计算)和Sky Computing(天空计算)
  • 地图可视化实践录:显示地理区域图
  • 深层神经网络
  • 测试匠谈 | AI语音合成之大模型性能优化实践
  • 【C#】用队列构建一个对象池管理对象的创建和释放
  • PySpark性能优化与多语言选型讨论
  • 各种 dp 刷题下
  • 人机交互:连接人类与数字世界的桥梁
  • apache+虚拟主机
  • 五、Elasticsearch在Linux的安装部署
  • Rust 项目编译故障排查:从 ‘onnxruntime‘ 链接失败到 ‘#![feature]‘ 工具链不兼容错误
  • 使用reqwest+select实现简单网页爬虫
  • Rust 性能提升“最后一公里”:详解 Profiling 瓶颈定位与优化|得物技术
  • open-webui源码分析1—文件上传
  • Vue接口平台十三——测试记录
  • springboot整合sharding-jdbc 5.5.2 做单库分表
  • 燕山大学计算机网络实验(2025最新)
  • Java调用Vue前端页面生成PDF文件
  • 深入剖析 React 合成事件:透过 onClick 看本质
  • Java 工厂方法模式
  • Flask + Vue.js 物联网数字大屏实现方案
  • 数据分析基本内容(第二十节课内容总结)
  • Rsync自动化备份平台建设实战
  • 【数据分析与挖掘实战】金融风控之贷款违约预测
  • 阿里云 Windows 服务器 搭建 Gitea 私有 Git 服务器完整教程