Consider n elements that are equally distributed in k stacks. In each stack, elements of it are arranged in ascending order (min is at the top in each of the stack and then increasing downwards).
Given a queue of size n in which we have to put all n elements in increasing order. What will be the time complexity of the best known algorithm?
(A) O(n logk)
In nlogk it can be done by creating a min heap of size k and adding all the top – elements of all the stacks. After extracting the min , add the next element from the stack from which we have got our 1st minimum.
Time Complexity = O(k) (For Creating Heap of size k) + (n-k)log k (Insertions into the heap).
Quiz of this Question