其他分享
首页 > 其他分享> > heapq.merge()高效合并有序序列

heapq.merge()高效合并有序序列

作者:互联网

import heapq
import random

# 针对较大的数据集,采用heapq中的merge()方法
# merge()不是对整个合并后的序列排序,而是使用一个堆一次一个元素的生成一个新序列,利用固定大小的内存确定下一个元素
random.seed(2016)
data = []
for i in range(4):
    new_data = list(random.sample(range(1, 101), 5))
    new_data.sort()
    data.append(new_data)

for i, d in enumerate(data):
    print('{}:{}'.format(i, d))

print('\nMerged:')
for i in heapq.merge(*data):
    print(i, end=' ')
print()

"""print result
0:[33, 58, 71, 88, 95]
1:[10, 11, 17, 38, 91]
2:[13, 18, 39, 61, 63]
3:[20, 27, 31, 42, 45]

Merged:
10 11 13 17 18 20 27 31 33 38 39 42 45 58 61 63 71 88 91 95
"""

标签:heapq,random,print,merge,序列,new,data
来源: https://www.cnblogs.com/weiweivip666/p/16177255.html