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

堆排序的应用

1.堆的应用

1.1建堆:向上调整建堆或者向下调整建堆
1)升序:建大堆
2)降序:建小堆
方法一:向上调整建堆

 方法二:向下调整建堆
思路:通过最后一个叶子节点找到它的父节点,然后通过它的父节点依次向上比较(也就是向下调整建堆)

 

时间复杂度
向上调整的时间复杂度:O(N*logN)


向下调整的时间复杂度:O(N)

  


综上:向下调整的时间复杂度小于向上调整的时间复杂度

1.2堆排序(通过建堆)
思路:不要直接使用堆这个数据结构,那样不仅时间复杂度很大,还要额外开辟空间,所以直接把这个要排序的数组看成堆,然后进行排序


注意:排升序,建大堆,然后将那个最大的数和最后一个进行交换的时候,就相当于向下调整
排降序,建小堆

 

 

对堆中元素进行向上调整函数

 

对堆中元素进行向下调整函数

 

1.3堆排序的时间复杂度是O(N✖️logN) 

 

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

相关文章:

  • python13——异常处理
  • AXI_CAN IP 简单使用。(仿真、microblaze)
  • zabbix-mcp-server:使用自然语言操作Zabbix
  • 【Makefile】Linux内核模块编译
  • Qt 系统相关 - 音视频
  • Go基础:Go语言中的指针详解:在什么情况下应该使用指针?
  • ReactNative性能优化实践方案
  • 大数据数仓面试问题
  • 深入理解Java中的==、equals与hashCode:区别、联系
  • Qt笔记:QString::toLocal8Bit的理解
  • 第12章 机器学习 - 局限性
  • ​​[硬件电路-320]:模拟电路与数字电路,两者均使用晶体管(如BJT、MOSFET),但模拟电路利用其线性区,数字电路利用其开关特性。
  • 今日行情明日机会——20250922
  • 智能交通拥堵检测系统详解(附视频+代码资源)
  • LLM 数据安全:筑牢数据防线
  • AI 在医疗领域的十大应用:从疾病预测到手术机器人
  • 零序电流/电压(面向储能变流器应用)
  • 【系统分析师】2024年上半年真题:综合知识-答案及详解(回忆版)
  • 给工业通信装“耐达讯自动化翻译器”:电表说Modbus,主控听Profibus,全靠它传话
  • 不同品牌PLC如何接入云平台?御控多协议物联网网关一站式集成方案
  • 深入理解指针(最终章):指针运算本质与典型试题剖析
  • SCI 期刊验证!苏黎世大学使用 ALINX FPGA 开发板实现分子动力学模拟新方案
  • C# OnnxRuntime yolov8 纸箱分割
  • SQLite3的API调用实战例子
  • LeetCode 60. 排列序列
  • springboot2.7.11 + quartz2.3.2,单机,集群实战,增删改查任务,项目一启动就执行任务
  • Hive 调优
  • 王晨辉:RWA注册登记平台赋能资产数字化转型
  • 周末荐读:美 SEC 推出加密货币 ETF 上市标准,Base 发币在即
  • HTTP API获取 MQTT上报数据