18 lines
628 B
Python
18 lines
628 B
Python
import heapq
|
||
from itertools import chain
|
||
|
||
if __name__ == '__main__':
|
||
a = [1, 4, 7, 10]
|
||
b = [2, 5, 6, 11]
|
||
|
||
# 首先复习一下前面的知识,如果不考虑合并后也是有序的,用chain
|
||
for item in chain(a, b):
|
||
print(item)
|
||
|
||
# 但如果我们想要得到有序合并序列,那就要用堆自带的merge功能了,利用小根堆的特殊性来排序
|
||
new_arr = heapq.merge(a, b)
|
||
for item in new_arr:
|
||
print(item)
|
||
|
||
# 记住,heapq的merge事先不会对输入可迭代对象的有序性进行检查,而是每次从可迭代对象序列里取出最小的第一个进堆
|