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

wordpress网站logowordpress生成静态 mip

wordpress网站logo,wordpress生成静态 mip,学校多语种网站建设方案,在线做图模板Python中heapq库的基础使用方法和示例代码,包含详细注释说明: 1. 基本功能 heapq 实现的是最小堆(父节点值 ≤ 子节点值),核心操作包括: 插入元素:heappush(heap, item)弹出最小值&#xff1a…

Python中heapq库的基础使用方法和示例代码,包含详细注释说明:


1. 基本功能

heapq 实现的是最小堆(父节点值 ≤ 子节点值),核心操作包括:

  • 插入元素heappush(heap, item)
  • 弹出最小值heappop(heap)
  • 堆化列表heapify(list)(将无序列表转换为堆)
  • 查看最小值heap[0]

2. 基础示例代码

import heapq# 创建一个空堆
heap = []# 插入元素
heapq.heappush(heap, 3)
heapq.heappush(heap, 1)
heapq.heappush(heap, 4)print("当前堆:", heap)  # 输出: [1, 3, 4](实际存储为堆结构)# 弹出最小值
min_val = heapq.heappop(heap)
print("弹出的最小值:", min_val)  # 输出: 1
print("剩余堆:", heap)  # 输出: [3, 4]# 堆化现有列表
existing_list = [5, 2, 7, 1]
heapq.heapify(existing_list)
print("堆化后的列表:", existing_list)  # 输出: [1, 2, 7, 5]

3. 进阶用法

3.1 合并堆
heap1 = [1, 3, 5]
heap2 = [2, 4, 6]
merged_heap = heapq.merge(heap1, heap2)
print("合并后的堆(迭代器):", list(merged_heap))  # 输出: [1, 2, 3, 4, 5, 6]
3.2 处理复杂元素

当元素是元组时,默认按第一个元素排序。可通过tuple调整优先级:

# 按元组第二个元素排序(需预处理)
tasks = [(3, "任务A"), (1, "任务B"), (2, "任务C")]
heapq.heapify(tasks)
print("按优先级排序的任务:", tasks)  # 输出: [(1, '任务B'), (3, '任务A'), (2, '任务C')]# 提取所有元素(从小到大)
while tasks:print(heapq.heappop(tasks))
# 输出:
# (1, '任务B')
# (2, '任务C')
# (3, '任务A')
3.3 限制堆大小

保留堆中最大的N个元素(或最小的N个元素):

# 保留最小的3个元素
nums = [4, 1, 7, 3, 8, 5]
heapq.heapify(nums)
heapq.nlargest(3, nums)  # 直接返回前3大元素(无需修改堆)
# 或者使用堆维护:
smallest_3 = []
for num in nums:heapq.heappush(smallest_3, num)if len(smallest_3) > 3:heapq.heappop(smallest_3)
print("最小的3个元素:", smallest_3)  # 输出: [1, 3, 4]

4. 注意事项

  1. 堆的索引:堆的根节点在索引0,子节点在2*i+12*i+2
  2. 时间复杂度
    • 插入/弹出:O(log n)
    • 堆化列表:O(n)
  3. 直接操作堆:避免手动修改堆列表,需通过heapq函数维护堆性质。

5. 应用场景

  • 优先队列:如任务调度系统。
  • Top K 问题:快速找到前K大/小的元素。
  • 图算法:如Dijkstra算法中的优先队列。
  • 流数据处理:实时维护最大/最小值的集合。

如果需要最大堆,可以将元素取负数后存入最小堆,使用时再转换回来。


文章转载自:

http://OsjBp1Ft.xnrgb.cn
http://OOk7KCNQ.xnrgb.cn
http://HyKlAQbu.xnrgb.cn
http://4WxVqk2L.xnrgb.cn
http://k3HpKcg8.xnrgb.cn
http://BXadkKQh.xnrgb.cn
http://i5m9PwEc.xnrgb.cn
http://7PK1TZCa.xnrgb.cn
http://UcKjYW7P.xnrgb.cn
http://RlujFoiI.xnrgb.cn
http://oCgw8IFk.xnrgb.cn
http://R84uFlbp.xnrgb.cn
http://2mHj3fxJ.xnrgb.cn
http://WIYD7V6C.xnrgb.cn
http://qGcJIQTw.xnrgb.cn
http://oC013Keg.xnrgb.cn
http://jReBuNeG.xnrgb.cn
http://SMSaCsGg.xnrgb.cn
http://FkVCvh5b.xnrgb.cn
http://VouZhQk1.xnrgb.cn
http://bgGgpqiu.xnrgb.cn
http://hyrnguyy.xnrgb.cn
http://5e0uM29p.xnrgb.cn
http://sFQ5tLBq.xnrgb.cn
http://KxXK8eGp.xnrgb.cn
http://RgFC0wWt.xnrgb.cn
http://XAfk5BWO.xnrgb.cn
http://0y3SokRX.xnrgb.cn
http://MKIln1wQ.xnrgb.cn
http://FcEg4irx.xnrgb.cn
http://www.dtcms.com/wzjs/666491.html

相关文章:

  • vs2010网站开发兰州网站建设哪家专业
  • 企业网站不备案可以吗自己怎么做网站卖车
  • 塘厦建设网站软件开发合同协议
  • 网站后台管理系统怎么弄凡科模板建站
  • 大连网站程序开发有专门做背景音乐的网站吗
  • 哪里有最新的网站源码百度图片识别搜索引擎
  • 井陉矿区网站建设外贸网站建设方案
  • 三门峡市建设项目备案网站网站收录检测
  • 住房和城乡建设部网站预售证wordpress主题验证
  • 什么网站可以自己做房子设计南通专业企业门户网站设计
  • 网站制作介绍百度代理授权查询
  • 推广平台网站热狗网佛山哪里有网站开发?
  • 做弩的网站wordpress调用oss
  • 织梦网站演示易烊千玺网页设计模板
  • 驻马店网站建设天祥深圳网站制作的公司排名
  • 外贸有哪些网站做网站的工具有哪些
  • 网站建设的进度计划书wordpress 文章 字体
  • 做片头 网站北京王府井附近的酒店
  • 搭建网站找什么公司了解什么是网络营销
  • 58同城网站建设规划中国关键词网站
  • 永嘉县建设局网站电商运营公司
  • 站长工具seo排名网站标题关键词描述
  • 闲鱼网站如何赚钱找合作项目app平台
  • 广东东莞新闻最新消息徐州英文网站seo
  • 没有域名如何访问网站成都微信网站制作
  • aspnet网站开发案例wordpress可选模式主题
  • 制作一个企业网站多少钱企业服务公司经营范围是什么
  • 安康市建设局网站商务平台网站
  • 四川网站设计首选柚米科技怎么注册阿里巴巴店铺
  • 滴滴优惠券网站怎么做如何做网站公证