Min Heap

1/0
1.0x

Min Heap

O(log n)Space: O(n)

Pseudocode

1procedure insert(heap, value)
2 append value to end of heap
3 i ← heap.size - 1
4 while i > 0 and heap[i] < heap[parent(i)]
5 swap heap[i] and heap[parent(i)]
6 i ← parent(i)
7procedure extractMin(heap)
8 min ← heap[0]
9 heap[0] ← heap[last]
10 remove last element
11 siftDown(heap, 0)
12 return min