First time here? Checkout the FAQ!
+2 votes
In a min-heap with n elements

1).  The 7th smallest element can be found in time, if duplicates are allowed ?

2).  The 7th distinct smallest element can be found in time, If duplicates are allowed ?
asked in Algorithms by Veteran (47.6k points)   | 448 views
O(n)  for both.
For 2nd one , O(n) is right, as we have to use hashtable .

For 1st, O(lgn) is given . I think it should be O(1) .
Ohh ... yes ... if we have elements like - 1,2 ,3,3,4,4,5,5,5,6,6,6,7

And ans for 1st is 5 and for 2nd it is 7 then you are correct...
1) O(1), because we can do it in constant time

2) O(N) counting sort will be applied
I agree the operation concerned is find() , which takes O(1) if duplicates are allowed but if asked for distinct 7th minimum and duplicates are allowed we may need to do find() operation for entire tree which will take O(n) time

2 Answers

0 votes

It will take O(1)



answered by Active (2.3k points)  
I think same here

but for 1st one, answer is given O(lg N).
0 votes
For first one :

O(log n)

Reason : To delete an element , it takes O(1), then we have to heapify , which takes O(log n);

Now for 7th smallest element, we need 7 such operations, hence O(7 log n) = O(log n)

For 2nd one :

answered by Loyal (3.8k points)  
good algorithm!!

i wasn't aware of such a solution. thanks!!


are you sure for first one it is O(logn)

If we will go with simple procedure like 1+2+3+....2^n-1 comaprison to find nth smallest element then it is O(1)

another one is start deleting the element till kth level to reach the kth smallest element which is O(logn)

because everywhere I am seeing O(1) as well O(logn) time...can u plz confirm?? even I am bit confuse

see this:


@cse23, yes, it is O(1).

and for 2nd it is O(N).
ok to find kth smallest element from the min heap..we can do in O(1) time.

Top Users Jul 2017
  1. Bikram

    4062 Points

  2. manu00x

    2464 Points

  3. Debashish Deka

    1850 Points

  4. joshi_nitish

    1658 Points

  5. Arjun

    1294 Points

  6. Hemant Parihar

    1184 Points

  7. Arnab Bhadra

    1112 Points

  8. Shubhanshu

    1054 Points

  9. Ahwan

    900 Points

  10. rahul sharma 5

    706 Points

24,022 questions
30,966 answers
29,342 users