從python docs。python的heapq.merge使用的算法是什麼?
我在相當多的地方發現了算法,如here,here和here。他們都沒有提到算法的名稱。
我需要給一篇論文參考,所以請指出正確的方向。
從python docs。python的heapq.merge使用的算法是什麼?
我在相當多的地方發現了算法,如here,here和here。他們都沒有提到算法的名稱。
我需要給一篇論文參考,所以請指出正確的方向。
這就是所謂的「多路合併」,由Donald Knuth在「計算機編程藝術」第三卷 - 分類和檢索第5.4.1節中描述。
[找到了](https://books.google.co。在/書籍ID = cYULBAAAQBAJ&PG = PA251與LPG = PA251&DQ =多路+合併+唐納德+高德納+在+電腦+編程+的+藝術+,+音量+ III + - +分類+和+搜索+部分+ 5.4.1與源= BL&OTS = KJysJgOn-K&SIG = Tl_Ob26ILod8G7fzohdAqMyJFts&HL = EN&SA = X&EI = QAdDVYffGYSwmAW8_YDAAQ&VED = 0CC4Q6AEwAg#v = onepage&q =多路%20merging%20Donald%20Knuth%20英寸%第二十條%20Art%20of%20Computer%20Programming%2C%20Volume%20III%20-% 20排序%20和%20搜索%2C%20部分%205.4.1&f = false) – rohithpr
太棒了!感謝您的名字。我有Knuth坐在我的書架上,也許我應該先看看。 (也是,+1!)。 –
如果你理解排序列表的合併,那麼這就是這個函數基本上正在做的事情。沒有名稱,除了合併。
另外,合併排序使用類似的例程,通常在兩個排序列表上。這就是爲什麼它被稱爲「合併」的原因。
這是一個經典的,可能沒有名稱,並不是python特定的。 –
所以我可以只提供鏈接作爲參考? (我是該領域的新手) – rohithpr
「使用堆的排序列表的標準合併算法」 –