Изменения
→Восстановление свойств кучи
if (left == right == inf) return
if (right <= left && right < A[i])
swap(A[2 * i + 1], A[i])
sift_down(2 * i + 1)
if (left < A[i])
swap(A[2 * i], A[i])
sift_down(2 * i)
</code>
if (i == 1) return
if (A[i] < A[i / 2])
sift_up(i / 2)
</code>