# 將陣列 A 建立的堆積元素 i 更新為較小值
decrease(A, i, value):
    A[i] ← value

# 以陣列 A 建立的堆積元素 i 為起點進行 Down Heap 
downHeap(A, i):
    l ← left(i)
    r ← right(i)

    # 找出父節點(自己)、左子節點及右子節點中擁有最大值的節點     
    if l < N and A[l] > A[i]:
        largest ← l
    else:
        largest ← i
    if r < N and A[r] > A[largest]:
        largest ← r

    if largest ≠ i:             # 當其中一個子節點擁有最大值時
        swap(A[i], A[largest])     # 將父、子節點的值互換
        downHeap(A, largest)       # 以遞迴方式進行 Down Heap


# 模擬本節變更元素值的範例
A ← 滿足最大堆積性質的整數序列
decrease(A, 0, 1)
downHeap(A, 0)