2013-06-04 76 views
2

要求通過合併排序4個陣列A,B,C和D的這些技術中的任何一個被允許:歸併排序變化

  1. 應用4路合併。
  2. 合併A和B.將C與前一個合併的輸出合併。最後將D與最後一個輸出合併。
  3. 將A與B和C合併爲D.現在合併兩個輸出。

在比較和轉移方面,每種技術的優點和缺點是什麼?

+1

如果做得對,第三種方法具有並行性的優點。 –

+0

使用大小4堆! – Gevorg

回答

2

有兩種效率方法可以在這裏考慮:

a。內存使用情況。

灣性能。

第一種技術具有低內存使用率,因爲它不產生中間數組。

第三種技術具有很高的性能,因爲A/B和C/D可以並行合併,然後合併中間數組。

最後,第二種技術既沒有上述特徵。

+0

這不是真的與「比較和轉移」。 – Dukeling

+0

@Dukeling隨意改變它,畢竟它是CW ;-) –

+0

好吧,它似乎與答案截然不同,所以它將是一個相當重要的編輯,在這種情況下,我寧願發佈我自己的答案。但我還沒有完全想到它(我也不會嘗試)。 – Dukeling