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

java中的最小堆

概述

最小堆minHeap指的级别n的每个节点存储的值小于或等于级别n+1的子节点的值。因此,根就存储了其中最小的值。
注意节点的值与其他兄弟节点的值之间没有必然关系。

java中最小堆的表示

利用数组

常用的是利用数组minHeap[]表示,将最小堆的节点或值存储在数组中。
然后利用公式访问父节点、右子节点、左子节点。根节点索引i=0

  • 父节点minHeap[(i-1)/2]
  • 右子节点minHeap[(i*2)+2]
  • 左子节点minHeap[(i*2)+1]

使用优先队列实现

使用PriorityQueue实现,当从优先队列中添加元素的时候,默认构建的是最小堆。

优先队列中的常见操作:

  • add()
  • remove()
  • peek()检索但不删除队列头,如果为空返回null
  • poll()检索并移除队列头
  • contains()
  • size()返回元素数

java中的最小堆示例


http://www.kler.cn/a/408419.html

相关文章:

  • Spring Boot + Android 实现登录功能
  • 数据指标与标签在数据分析中的关系与应用
  • 身份证实名认证API接口助力电商购物安全
  • 《FreeRTOS任务删除篇》
  • 瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇
  • 【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
  • 深入理解 Seata:分布式事务的最佳解决方案
  • Vue.js 学习总结(15)—— 如何快速删除 node_modules 依赖文件
  • springboot实战(17)(“大事件“——新增文章主体逻辑)
  • MySQL的DELETE(删除数据)详解
  • JavaSE 总复习:夯实基础,迈向进阶之路
  • LeetCode 4.寻找两个中序数组的中位数
  • 鸿蒙进阶篇-状态管理之@Provide与@Consume
  • Linux系列-僵尸状态
  • Java基于SpringBoot+Vue的藏区特产销售平台
  • 【创建型设计模式】单例模式
  • flink学习(1)——standalone模式的安装
  • GMAN解读(论文+代码)
  • 【面向对象】Java处理异常的方式
  • STM32抢占优先级不生效
  • 对于相对速度的重新理解 - 插一句
  • MySQL原理简介—10.SQL语句和执行计划
  • 编程中的字节序问题
  • 海信Java后端开发面试题及参考答案
  • 基于python的长津湖评论数据分析与可视化,使用是svm情感分析建模
  • docker 配置代理