首页 > 代码库 > Python_heapq

Python_heapq

 1 import heapq    #导入heapq堆模块
 2 import random
 3 data = http://www.mamicode.com/random.sample(range(1000),10)
 4 print(data)
 5 heapq.heapify(data) #堆化随机测试数据
 6 print(堆化随机测试数据:,data)
 7 heapq.heappush(data,30) #新元素入堆,自动调整堆
 8 print(插入30后的堆数据:,data)
 9 heapq.heappush(data,5)
10 print(插入5后的堆数据:,data)
11 print(删除的数据为:,heapq.heappop(data),返回并删除最小元素,自动调整堆后的堆数据:,data)
12 print(弹出最小元素,同时新元素入堆后的数据:,heapq.heappushpop(data,1000))
13 print(弹出最小元素,同时新元素入堆后的数据,heapq.heapreplace(data,500))
14 print(弹出最小元素,同时新元素入堆后的数据,heapq.heapreplace(data,700))
15 print(返回最大的前3个元素,heapq.nlargest(3,data) ) #返回最大的前3个元素
16 print(返回指定排序规则下最小的3个元素,heapq.nsmallest(3,data,key=str)) #返回指定排序规则下最小的3个元素
17 print(data)
18 
19 ‘‘‘
20 输出结果
21 [80, 366, 834, 269, 829, 295, 583, 952, 548, 668]
22 堆化随机测试数据: [80, 269, 295, 366, 668, 834, 583, 952, 548, 829]
23 插入30后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
24 插入5后的堆数据: [5, 80, 30, 366, 269, 295, 583, 952, 548, 829, 668, 834]
25 删除的数据为: 5 返回并删除最小元素,自动调整堆后的堆数据: [30, 80, 295, 366, 269, 834, 583, 952, 548, 829, 668]
26 弹出最小元素,同时新元素入堆后的数据: 30
27 弹出最小元素,同时新元素入堆后的数据 80
28 弹出最小元素,同时新元素入堆后的数据 269
29 返回最大的前3个元素 [1000, 952, 834]
30 返回指定排序规则下最小的3个元素 [1000, 295, 366]
31 [295, 366, 583, 500, 668, 834, 700, 952, 548, 829, 1000]
32 ‘‘‘

 

Python_heapq