Heapify(A,i)

1l = 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