Heapify(A,i)

1
l = left(i)

2
r = right(i)

3
if l HeapSize(A) and A[l] > A[i]

4
then largest = l

5
else largest = i

6
if r HeapSize(A) and A[r] > A[largest]

7
then largest = r

8
if largest i

9
then swap(A[largest], A[i])

10
Heapify(A, largest)

If the parent is smaller than either of its children, does it matter whether we swap the parent with the larger or the smaller of the children? Yes - consider case where parent=3, child1=6, child2=7