合并多個有序序列,再對整個有序序列進行迭代之heapq.merge()方法

<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()方法會檢查每個序列的第一個元素,進行比較,將最小的那個放入新的序列中,然后再從之前的每個序列中選擇下一個相比較小的元素。重復此操作,直至生成一個完整的新序列。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 第五章 序列和協程 來源:Chapter 5: Sequences and Coroutines 譯者:飛龍 協議...
    布客飛龍閱讀 670評論 0 37
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,282評論 0 2
  • 不知何時,抑郁像迷霧一樣,籠罩了內心,在無邊的“森林”中,走失自己。 都市人的不易,為了生活不敢松一口氣,久而久之...
    愛隨喜閱讀 368評論 0 0
  • 儀式是指對于某一特定意義的事情所發展出來的不同于其他的一種紀念。 1 過年的時候和宿舍的兩個姑娘碰面,說道結婚這個...
    明媚小女子閱讀 265評論 0 0