min heap

heapify(arr, n, i) { int smallest = i; int l = 2 * i + 1; int r = 2 * i + 2;

if (l < n && arr[l] < arr[smallest]) smallest = l;

if (r < n && arr[r] < arr[smallest]) smallest = r;

if (smallest != i) { swap(arr[i], arr[smallest]); heapify(arr, n, smallest); } }

buildMinHeap(arr, n) { for (int i = (n / 2) - 1; i >= 0; i--) heapify(arr, n, i); }