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

python优先队列使用

heapq 是 Python 的一个内置模块,提供了堆队列算法的实现,也称为优先队列算法。以下是关于 heapq 模块的详细使用说明。

基本概念

  • :一种特殊的二叉树结构,满足父节点总是小于或等于其子节点(最小堆)
  • 特性
    • 堆是一个完全二叉树
    • 堆中每个节点的值都小于或等于其子节点的值(最小堆)
    • 根节点总是堆中的最小元素

1. 添加元素

heap = []
heapq.heappush(heap, 5)    # 添加元素
heapq.heappush(heap, 3)
heapq.heappush(heap, 7)
heapq.heappush(heap, 1)
print(heap)  # 输出可能是 [1, 3, 7, 5]

2. 弹出最小元素

smallest = heapq.heappop(heap)
print(smallest)  # 输出 1
print(heap)      # 输出可能是 [3, 5, 7]

3. 查看最小元素(不弹出)

smallest = heap[0]
print(smallest)  # 输出 3

4. 合并堆

heap1 = [1, 3, 5]
heap2 = [2, 4, 6]
merged = list(heapq.merge(heap1, heap2))  # 返回一个迭代器
print(list(merged))  # 输出 [1, 2, 3, 4, 5, 6]
http://www.lryc.cn/news/581288.html

相关文章:

  • NAT、代理服务、内网穿透
  • Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记
  • C#使用开源框架NetronLight绘制流程图
  • C++------模板初阶
  • JS 网页全自动翻译v3.17发布,全面接入 GiteeAI 大模型翻译及自动部署
  • 2025年的前后端一体化CMS框架优选方案
  • 【大模型入门】访问GPT的API
  • 【Halcon】WPF 自定义Halcon显示控件完整流程与 `OnApplyTemplate` 未触发的根本原因解析!
  • day 60 python打卡
  • ffplay6 播放器关键技术点分析 1/2
  • Windows内核并发优化
  • rk3128 emmc显示剩余容量为0
  • 深度学习5(深层神经网络 + 参数和超参数)
  • 力扣网编程55题:跳跃游戏之逆向思维
  • 前端相关性能优化笔记
  • Python数据容器-list和tuple
  • 四、jenkins自动构建和设置邮箱
  • PHP语法基础篇(九):正则表达式
  • CppCon 2018 学习:Smart References
  • 有限状态机(Finite State Machine)
  • 相机位姿估计
  • 2 大模型高效参数微调;prompt tunning
  • 【Linux】自旋锁和读写锁
  • 全素山药开发指南:从防痒处理到高可用食谱架构
  • DeepSeek扫雷游戏网页版HTML5(附源码)
  • C#指针:解锁内存操作的底层密码
  • 机械时代的计算
  • 【Linux】常用基本指令
  • 爬虫工程师Chrome开发者工具简单介绍
  • 推荐算法系统系列五>推荐算法CF协同过滤用户行为挖掘(itembase+userbase)