First time here? Checkout the FAQ!
+3 votes
In a binary max heap containing n numbers, the smallest element can be found in time?
asked in DS by (437 points)   | 206 views

1 Answer

+5 votes

We have two ways to find the smallest element from $n$  number Max Heap

Way 1st

$\Rightarrow$ Construct(Build) a Minheap from the given Maxheap which will take $\Rightarrow \Theta \left ( n \right )$ $\Rightarrow$ 1st element of the array(heap) will be minimum ,it will take $\Theta \left ( c \right )$.$\Rightarrow T\left ( n \right )= \Theta \left ( n \right )+\Theta \left ( c \right )\approx \Theta \left ( n \right )$

Way 2nd-:Using MaxHeap Only.$\Rightarrow$In MaxHeap ,smallest element are present in the last level 'L' or 2nd last level 'L-1',where L is the level of our graph(In simple words Smallest element will present in the Leaves of our heap/graph).How to find Leaves?

$\Rightarrow$ Leaves will be from $\left \lfloor n/2 \right \rfloor+1$ to $n$ $\Rightarrow$ search the smallest element among these numbers which will also take $\Theta \left ( n \right )$.


answered by Boss (9.4k points)  

Top Users Aug 2017
  1. Bikram

    5034 Points


    4730 Points

  3. akash.dinkar12

    3488 Points

  4. manu00x

    3296 Points

  5. rahul sharma 5

    3178 Points

  6. makhdoom ghaya

    2530 Points

  7. just_bhavana

    2428 Points

  8. stblue

    2240 Points

  9. Tesla!

    2076 Points

  10. joshi_nitish

    1830 Points

25,032 questions
32,178 answers
30,218 users