2016-09-14 15 views
3

A是已按升序排序的n整數的數組。
Bm未整理的整數數組。
我們知道A中的一組整數與B中的一組整數不相交。描述一個算法來生成一個數組,其中所有的n + m整數已按升序排序。你的算法應該終止於O(n + m log m)時間。合併排序變化n + m,易混淆

我知道這應該是像合併排序,但n+mO(n+mlogm)丟給我。任何人都可以解釋嗎?

回答

2

我想你應該在B排列第一排序:O(mlogm)
之後,你有兩個排序數組,你需要將它們合併,這將需要:O(n+m)
現在整個過程是O(mlogm + (n+m))等於O(mlogm)

+1

如果我們不知道'n'和'm'之間的關係,那麼我認爲總的複雜度實際上應該是'O(mlogm + n)'。 –