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

堆排序以及实现

一,堆的概念

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

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

2.通常有两种数据类型

a.大顶堆(Max-Heap)

根节点大于他的孩子节点

b.小顶堆(Max-Heap)

孩子节点大于他的根节点

二,代码逻辑

1.插入逻辑

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

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

2.删除逻辑

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

图1

图2

http://www.dtcms.com/a/328183.html

相关文章:

  • 飞算 JavaAI -智慧城市项目实践:从交通协同到应急响应的全链路技术革新
  • 【Go】Gin 超时中间件的坑:fatal error: concurrent map writes
  • FPGA即插即用Verilog驱动系列——UART串口接收
  • 医疗智慧大屏系统 - Flask + Vue实现
  • nextTick和setTimeout的区别
  • Docker概述与安装Dockerfile文件
  • k8s-scheduler 解析
  • 1小时 MySQL 数据库基础速通
  • log4cplus的功能是什么,我们如何来使用它?
  • 调整UOS在VMware中的分辨率
  • Linux系统启动过程详解
  • CTO 如何从“干活的人”转变成“带方向的人”?
  • 需求沟通会议如何组织
  • 云手机在电商行业中的作用
  • 知名车企门户漏洞或致攻击者远程解锁汽车并窃取数据
  • C++ 学习与 CLion 使用:(二)using namespace std 语句详解,以及 std 空间的标识符罗列
  • 消防安全预警系统助力安全生产
  • 【工作笔记】win11系统docker desktop配置国内mirror不生效解决方案汇总整理
  • `SHOW PROCESSLIST;` 返回列详解(含义 + 单位)
  • django celery 动态添加定时任务后不生效问题
  • 【SDR课堂第35讲】通用软件无线电平台USRP7440- RFSOC NCO性能测试(一)
  • android 换肤框架详解3-自动换肤原理梳理
  • JDK 9~17 新特性及升级建议
  • 【154页PPT】某大型再生资源集团管控企业数字化转型SAP解决方案(附下载方式)
  • 麒麟信安“操作系统+云”双驱动,推进某市公安局智慧警务建设
  • 云部署 MCP 服务计费
  • Java 包
  • 飞算JavaAI:Java智能开发工具的技术解析、应用实践
  • 燕山大学计算机网络实验(2025最新)
  • Python科学计算与可视化领域工具TVTK、Mayavi、Mlab、Traits(附视频教程)