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

算法之排序

一 堆排序

1.1 堆概念

(4 封私信) 【算法】排序算法之堆排序 - 知乎

1.1.1 堆的存储

一般用数组来表示堆,下标为 i 的结点的父结点下标为(i-1)/2;其左右子结点分别为 (2i + 1)、(2i + 2)

1.1.2 最大堆的构建

void buildMaxHeap(vector<int>& nums, int len) {for (int i = len / 2; i >= 0; --i) {maxHeapify(nums, i, len);}
}

功能解析:

  • 作用:将整个数组转换为最大堆。
  • 实现逻辑:
    1. 最后一个非叶子节点开始,向前遍历到根节点(索引 0)。
    2. 对每个节点调用maxHeapify进行堆化。
  • 为什么从len/2开始?
    • 完全二叉树中,索引> len/2的节点都是叶子节点(没有子节点),无需堆化。
    • 最后一个非叶子节点的索引为len/2(整数除法)。
http://www.dtcms.com/a/355339.html

相关文章:

  • java后端的各种注解
  • 基于 PyTorch 构建 Dataset 与 DataLoader:从 TXT 文件读取到新增类别全流程指南
  • AI大模型企业落地指南-笔记02
  • Spring 框架中事务传播行为的定义
  • 146. LRU缓存
  • python使用sqlcipher4对sqlite数据库加密
  • 【论文阅读】基于人工智能的下肢外骨骼辅助康复方法研究综述
  • 【电源专题】隐形守护者:防爆锂电池如何守护高危环境的安全防线
  • UE5提升分辨率和帧率的方法
  • 网站日志里面老是出现{pboot:if((\x22file_put_co\x22.\x22ntents\x22)(\x22temp.php\x22.....
  • Leetcode 深度优先搜索 (15)
  • 【大前端】React Native(RN)跨端的原理
  • 比较两个字符串的大小
  • 使用CDN后如何才不暴露IP
  • EtherNet/IP 转 Modbus 协议网关(三格电子)
  • SOME/IP-SD通信中的信息安全保证
  • leetcode_73 矩阵置零
  • (LeetCode 面试经典 150 题) 103. 二叉树的锯齿形层序遍历(广度优先搜索bfs)
  • [n8n] 工作流数据库管理SQLite | 数据访问层-REST API服务
  • 解决PyCharm打开PowerShell终端报错找不到conda-hook.ps1文件
  • 前端javascript在线生成excel,word模板-通用场景(免费)
  • Spring Boot 定时任务入门
  • 使用Java实现PDF文件安全检测:防止恶意内容注入
  • ubuntu20安装lammps
  • PDFMathTranslate,完全免费的电脑 PDF 文档翻译软件
  • 怎么保护信息安全?技术理论分析
  • Shell 脚本编程规范与变量
  • [调试][实现][原理]用Golang实现建议断点调试器
  • 裸金属服务器与虚拟机、物理机的核心差异是什么?
  • 鸿蒙Harmony-从零开始构建类似于安卓GreenDao的ORM数据库(二)