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

2022/4/22 6:12:54

本文主要是介绍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.merge()高效合并有序序列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程