Since the priority queue operation delete min must be O(log n) the
running time here can't be better than O(n log n).

On Oct 16, 11:06 am, "juver++" <avpostni...@gmail.com> wrote:
> Keep priority queue of pairs - sum and respective indices in the
> arrays.
> Start from pair (a[0] + b[0], (0, 0)).
>
> while (queue is not empty && n > 0) {
>   retrieve largest sum from the queue, (sum, (i, j))
>   add sum to the result array
>   --n;
>
>   add pairs (a[i + 1] + b[j], (i + 1, j)) and (a[i] + b[j + 1], (i, j
> + 1)) if it is possible due the boundings;
>
> }
>
> The additional care should be taken to avoid processing pair of
> indices twice.
>
> On 14 ÏËÔ, 11:55, Harshal <hc4...@gmail.com> wrote:
>
>
>
> > Given two sorted postive integer arrays A[n] and B[n] (W.L.O.G, let's
> > say they are decreasingly sorted), we define a set S = {(a,b) | a \in A
> > and b \in B}. Obviously there are n^2 elements in S. The value of such
> > a pair is defined as Val(a,b) = a + b. Now we want to get the n pairs
> > from S with largest values. The tricky part is that we need an O(n)
> > algorithm.
>
> > --
> > Harshal Choudhary,
> > III Year B.Tech Undergraduate,
> > Computer Engineering Department,
> > National Institute of Technology Surathkal, Karnataka
> > India.

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algoge...@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to