news 2026/4/17 18:43:06

堆排序--自学笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
堆排序--自学笔记

堆排序

学习目标

1.堆结构

2.堆排序思想

3.代码实现

4.复杂度分析

1.堆结构

定义

符合以下两个条件之一的完全二叉树

  • 根节点的值 >= 子节点的值,称为最大堆,或大顶堆
  • 根节点的值 <= 子节点的值,称为最小堆,或小顶堆

2.堆排序思想

3.代码实现

/** * 堆排序 * @param arr */publicstaticvoidheapSort(int[]arr){//堆排序第一步:初始化堆//这里选择构建大顶堆:从小到大排序buildMaxHeap(arr);//取数字,调整 循环//取出堆顶数字:与数组末尾元素交换//数组长度-1for(inti=arr.length-1;i>0;i--){swap(arr,0,i);//i也可以代表数组中可用的数字maxHeapify(arr,0,i);}}/** * 初始化堆(大顶堆) * @param arr */privatestaticvoidbuildMaxHeap(int[]arr){//构建堆第一步:从最后一个非叶子节点开始进行三人组比赛//也可以从arr.length - 1 开始,但它没有左右子节点,也会运算到arr.length / 2 - 1for(inti=arr.length/2-1;i>=0;i--){//大顶堆化maxHeapify(arr,i,arr.length);}}/** * 大顶堆化 * @param arr * @param i * @param heapSize */privatestaticvoidmaxHeapify(int[]arr,inti,intheapSize){//找到左右子节点intl=2*i+1;intr=2*i+2;intlargest=i;//不能越界if(l<heapSize&&arr[l]>arr[largest]){largest=l;}if(r<heapSize&&arr[r]>arr[largest]){largest=r;}if(largest!=i){//需要发生交换swap(arr,i,largest);//发生了交换 则交换下来的元素需要继续下沉maxHeapify(arr,largest,heapSize);}}privatestaticvoidswap(int[]arr,inta,intb){inttemp=arr[a];arr[a]=arr[b];arr[b]=temp;}

4.复杂度分析

215. 数组中的第K个最大元素 - 力扣(LeetCode)

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

基于Springboot社区物资申报系统【附源码+文档】

&#x1f495;&#x1f495;作者&#xff1a; 米罗学长 &#x1f495;&#x1f495;个人简介&#xff1a;混迹java圈十余年&#xff0c;精通Java、小程序、数据库等。 &#x1f495;&#x1f495;各类成品Java毕设 。javaweb&#xff0c;ssm&#xff0c;springboot等项目&#…

作者头像 李华
网站建设 2026/4/11 20:50:31

低功耗设备中LCD显示屏串行接口优化方案

让LCD屏更省电&#xff1a;串行接口的实战优化策略你有没有遇到过这样的情况&#xff1f;设备明明已经进入了低功耗模式&#xff0c;但电流表上的读数就是下不去——一查&#xff0c;原来是LCD显示屏还在“偷偷”耗电。在可穿戴设备、智能传感器或远程医疗终端这类电池供电的产…

作者头像 李华
网站建设 2026/4/12 0:05:30

论文AI改写工具排行榜:8个平台一键降重与智能创作

目前市面上有多款AI论文辅助工具在降重、降低AIGC检测率以及论文写作方面表现突出&#xff0c;通过对8个主流平台的实测数据与用户反馈进行综合评估&#xff0c;这些工具在生成效率、内容准确性和操作便捷性等方面各具优势&#xff0c;为学术研究者提供了从初稿撰写到重复率优化…

作者头像 李华
网站建设 2026/4/17 5:56:10

基于SpringBoot的青年大学习记录管理系统的设计与实现

基于SpringBoot的青年大学习记录管理系统的设计与实现 一、系统总体设计 基于SpringBoot的青年大学习记录管理系统以“规范学习记录、提升组织效率、强化数据监管”为核心目标&#xff0c;解决传统青年大学习管理中记录分散、统计耗时、参与情况不透明等问题&#xff0c;适配高…

作者头像 李华
网站建设 2026/4/17 2:36:41

利用施密特触发器抑制随机噪声:手把手实现电路设计

施密特触发器实战指南&#xff1a;用迟滞电压驯服噪声&#xff0c;打造坚如磐石的数字输入 你有没有遇到过这种情况——一个简单的按键按下&#xff0c;MCU却收到五六个中断&#xff1f;或者传感器信号明明应该稳定&#xff0c;GPIO读回来却频繁跳变&#xff1f;你以为是代码出…

作者头像 李华