<a href="https://docs.python.org/2/library/heapq.html">Heap queue algorithm-(heapq - 堆队列算法)官方链接</a>
- 问题引入:
- 一组
有序序列
,先合并产生一个新的有序序列,然后进行迭代。
- 一组
-
heapq.merge()
函数引入,有关heapq其它方法如下:- heappop
- heapreplace
- heapify
- heappush
- nsmallest
- nlargest
- merge
- heappushp
- 实现方法
>>> import heapq
>>> a = [1, 4, 7, 10]
>>> b = [2, 5, 6, 11]
>>> for c in heapq.merge(a,b):
print(c)
1
2
4
5
6
7
10
11
- 如何理解
heapq.merge
- 1.
heapq.merge()
在迭代操作中,对所提供的序列并不会做一次性操作,可以处理非常长的序列,开销小。 - 2.
heapq.merge()
方法使用的前提是要求所有的输入序列是有序的。 - 3.
heapq.merge()
方法不会预先做排序操作。 - 4.
heapq.merge()
方法不会验证输入序列是否满足要求。 - 5.
heapq.merge()
方法会检查每个序列的第一个元素,进行比较,将最小的那个放入新的序列中,然后再从之前的每个序列中选择下一个相比较小的元素。重复此操作,直至生成一个完整的新序列。
- 1.