2013-12-15 47 views
0

假設一個給定的集合'A1,A2,... An'增加了向量個數。假設每個'Ai'都有'Ti'元素。我們要按升序列印所有't = t1 + t2 + t3 + ... + tn'數字。給一個消耗時間'O(tlgn)'的算法來完成這項工作。

示例:
A1 = 2,5,0,20,30→T1 = 5
A2 = 30,5,8→T2 = 3
A3 = 8,1,3,10,5→T3 = 5
n = 3(陣列數)和T = 13(元素總數)
結果:0,1,2,3,5,5,5,8,8,10,20,30,30 in 0 (tgn)其中lg n = log2(n)遞增算法 - O(tlgn)

+0

向我們展示你到目前爲止所擁有的。 – RBarryYoung

+0

我正在考慮使用minHeap,並且每個數組的't'次都得到A [1],但它在O(tlgn)中不起作用。我嘗試使用隊列優先級,但它不起作用。 –

+0

你會更詳細地描述任務嗎?例如,我沒有看到你在哪裏做總和?你的輸出似乎只是所有的數字排序。 「增加載體數量」的含義是什麼?元素的數量和元素本身都不增加。 – chill

回答

1

一般策略是將數組組合成一個數組(O(N))。然後執行某種變化:merge sort在最壞的情況下是O(n lg(n))。這假定對內存使用沒有限制。