<a >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.