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

数据结构-堆

目录

heapq

导入

初始化 

插入元素

返回最小值

PriorityQueue

导入

初始化

入队

出队


堆是一颗树,其每个节点都有一个值,且(小根堆:每个父节点都小于等于其子节点

(在进树时不断进行比较

STL中的 priority_queue 其实就是一个大根堆

python中可以用 heapq(小根堆) 和 PriorityQueue (大根堆)

heapq

heapq默认是小根堆,如果想实现大根堆的话得负负得正

导入

import heapq

初始化 

heap=[]

或者从列表转化而来

heapq.heapify(列表名)

那么后面堆名就是列表名

插入元素

heapq.heappush(堆名,插入元素值)

返回最小值

heapq.heappop(堆名)

PriorityQueue

在这PQ里我们需要自己设置优先级,一般情况下就是元素值等于优先级值

从不是标准库的deque导入

注意⚠️:PriorityQueue得从不是标准库的deque导入

from deque import PriorityQueue

初始化

pq=PriorityQueue()

入队

pq.put([优先级,元素值])

出队

取出优先级最高的(小根堆的话也是负负得正

pq.get()

http://www.xdnf.cn/news/4932.html

相关文章:

  • C++中static关键字详解:不同情况下的使用方式
  • 谷云科技iPaaS发布 MCP Server加速业务系统API 跨入 MCP 时代
  • JAVA将一个同步方法改为异步执行
  • CAN转ModbusTCP网关:破解电池生产线设备协议壁垒,实现全链路智能互联
  • 单调栈所有模版类型(4)
  • 为特定领域微调嵌入模型:打造专属的自然语言处理利器
  • 钉钉打卡教程
  • Go Modules 的基本使用
  • 什么是直播美颜SDK?跨平台安卓、iOS美颜SDK开发实战详解
  • 排序算法-希尔排序
  • 操作系统面试问题(4)
  • 不拆机查看电脑硬盘型号的常用方法
  • JVM之jcmd命令详解
  • 5月9号.
  • 如何删除豆包本地大模型
  • 《时序数据库全球格局:国产与国外主流方案的对比分析》
  • 23种设计模式-行为型模式之模板方法模式(Java版本)
  • 【NextPilot日志移植】logged_topics.cpp解析
  • 动态规划之背包问题:组合优化中的经典NP挑战
  • CCDO|企业数字化转型:机制革新与人才培育的双重引擎
  • 在 Ubuntu 上安装并运行 ddns-go 教程
  • 量化交易策略的运行
  • StreamRL:弹性、可扩展、异构的RLHF架构
  • Rust中记录日志:fast_log
  • 第一天——贪心算法——分饼干
  • 【软件设计师:软件】20.软件设计概述
  • Oracle链接服务器导致SQL Server异常终止
  • PHP会话技术
  • 机器学习与深度学习的区别与联系:多角度详细分析
  • Java 模板引擎 Thymeleaf JSP FreeMarker