import heapq    #导入heapq堆模块
import random
data = random.sample(range(1000),10)
print(data)
heapq.heapify(data) #堆化随机测试数据
print('堆化随机测试数据:',data)
heapq.heappush(data,30) #新元素入堆,自动调整堆
print('插入30后的堆数据:',data)
heapq.heappush(data,5)
print('插入5后的堆数据:',data)
print('删除的数据为:',heapq.heappop(data),'返回并删除最小元素,自动调整堆后的堆数据:',data)
print('弹出最小元素,同时新元素入堆后的数据:',heapq.heappushpop(data,1000))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,500))
print('弹出最小元素,同时新元素入堆后的数据',heapq.heapreplace(data,700))
print('返回最大的前3个元素',heapq.nlargest(3,data) ) #返回最大的前3个元素
print('返回指定排序规则下最小的3个元素',heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
print(data) '''
输出结果
[80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
弹出最小元素,同时新元素入堆后的数据: 30
弹出最小元素,同时新元素入堆后的数据 80
弹出最小元素,同时新元素入堆后的数据 269
返回最大的前3个元素 [1000, 952, 834]
返回指定排序规则下最小的3个元素 [1000, 295, 366]
[295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
'''

Python_heapq的更多相关文章

随机推荐

  1. UML之结尾篇

    作为十期的孩子,我们已经开发过两个系统,学生管理系统和机房收费系统,也接触了软工,编写了一系列文档,不知道小朋友有没有这种感觉,开发一个系统软件和编写一个程序是不一样的,他们之间的差别,用一个比喻来说 ...

  2. Java集合之Hashtable

    和HashMap一样,Hashtable也是一个散列表,存储的内容也是键值对key-value映射.它继承了Dictionary,并实现了Map.Cloneable.io.Serializable接口 ...

  3. 菜鸟玩云计算之廿一: saltstack之pillar

    菜鸟玩云计算之廿一: saltstack之pillar 参考: 点击打开链接 查看pillar数据: # salt '*' pillar.items pillar的默认根目录在:/srv/pillar ...

  4. android自定义view之---组合view

    最近工作比较轻松,没有什么事情干,于是进入高产模式(呃....高产似xx). 应该很多童鞋对自定义view这个东西比较抵触,可能是听网上说view比较难吧,其实自定义view并没有很难 自定义view ...

  5. centOS 安装(光安装 和 u盘安装)

    光盘安装用这个: http://www.williamlong.info/archives/1912.html 是否保留win7,要作好相关配置.有些插件可以不装. 网络设置:不好弄 如果用u盘安装, ...

  6. OpenCV——PS 滤镜, 曝光过度

    算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...

  7. 客户全局信用控制&非全局信用控制

    看个简单的例子 客户信用限额 非全局信用控制 非全局信用控制比较简单,我们看一下全局信用控制 设置: 实现结果:全局&非全局对比

  8. 锋利的Jquery摘要

    一本好书值得去反复回味 第一章: jquery中的$(document).ready(function(){})与js中的windows.onload()的比较   $(document).ready ...

  9. MyBatis 框架之快速入门程序

    一.使用 IDEA 快速创建 Maven 项目 关于如何快速创建 Maven 项目,这个可以参考下面这篇文章: Maven 项目管理工具基础入门系列(一) 二.快速配置 MyBatis 依赖 jar ...

  10. sort list(给链表排序)

    Sort a linked list in O(n log n) time using constant space complexity. 题目要求使用O(nlogn)时间复杂度,可以考虑使用归并排 ...