Min Heap

T: O(log n) insert/extract
Feedback

Min Heap

Min-Heap initialized (empty)
Empty Heap
Array Representation
empty
SpeedNormal (500ms)
Parameters

{ values: number[] }

Variables
phaseinsert-add
heap[]
1function insert(val):
2 heap.push(val)
3 i = heap.length - 1
4 while i > 0 and heap[parent(i)] > heap[i]:
5 swap(heap[parent(i)], heap[i])
6 i = parent(i)
7
8function extractMin():
9 min = heap[0]
10 heap[0] = heap.pop()
11 i = 0
12 while true:
13 smallest = min(i, left(i), right(i))
14 if smallest == i: break
15 swap(heap[i], heap[smallest])
16 i = smallest
17 return min
Output
Min-Heap initialized (empty)