当前位置: 首页 > 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.xdnf.cn/news/1083079.html

相关文章:

  • H3C WA6322 Fit AP切换为云AP或Anchor-AC(FAT AP)
  • 如何理解lambda排序
  • 自动化Prompt生成平台的研发体系设计
  • 《Redis》哨兵模式
  • 数据结构——栈的讲解(超详细)
  • python使用fastmcp包编写mcp服务端(mcp_server)和mcp客户端(mcp_client)
  • Java教程——深入学习guava之并发编程
  • 如何使用backtrace定位Linux程序的崩溃位置
  • 大数据学习2:HIve
  • 故障诊断 | CNN-GRU-Attention故障诊断
  • LINUX75 LAMP
  • 前端-CSS-day1
  • Softhub软件下载站实战开发(十三):软件管理前端分片上传实现
  • 从零构建智能ai语音助手:ESP32s3+Python+大语言模型实战指南
  • SQL128 统计2021年未完成试卷作答数大于1的有效用户
  • Linux操作系统之文件(四):文件系统(上)
  • Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算
  • STM32中实现shell控制台(命令解析实现)
  • [Cyclone] 哈希算法 | SIMD优化哈希计算 | 大数运算 (Int类)
  • Qt开发:QListWidget的介绍和使用
  • FLUX.1 Kontext:图像生成与编辑的范式革命
  • 基于大模型的肾积水全周期预测与诊疗方案研究报告
  • 【Note】《深入理解Linux内核》 第十八章:深入理解 ext2 与 ext3 文件系统
  • 每日学习问题记录
  • CppCon 2018 学习:STATE MACHINES BATTLEFIELD NAIVE VS STL VS BOOST
  • python实现简单的地图绘制与标记20250705
  • 智链万物:人工智能驱动的产业智能化革命
  • RocketMQ面试题
  • React Hooks全面解析:从基础到高级的实用指南
  • 『 C++入門到放棄 』- string