void siftdown(n) {
int i = 1; //i ist Wurzel
while (i hat mindestens einen Sohn) {
int c = 2*i; //c ist linker Sohn von i
if (A[c+1] < A[c]) //kleinsten Sohn finden
c++;
if (A[i] > A[c]) //Heap-Eigenschaft gestört
vertausche i und c;
i = c;
}
}