- HEAP-INSERT(A,key)
- heapsize[A] <- heapsize[A] + 1
- n <- heapsize[A]
- if n = 1
- then A[n] = key
- if n = 2 or n = 3
- then A[n] = key
- if A[n] > A[1]
- then exchange A[n] <-> A[1]
- if n > 3
- then A[n] = key
- i <- n
- while i > 3
- do if A[Parent(i)] >= A[i] >= A[Parent(Parent(i))]
- then done
- if A[Parent(i)] <= A[i] <= A[Parent(Parent(i))]
- then done
- exchange A[i] <-> A[Parent(Parent(i))]
- i <- Parent(i)