Изменения

Перейти к: навигация, поиск

Двоичная куча

55 байт убрано, 01:29, 16 июня 2014
siftDown
'''function''' siftDown(i : '''int'''):
'''while''' 2 * i + 1 <tex><</tex> A.heapSize <font color = "green">// heapSize {{---}} количество элементов в куче</font>
left <tex>=</tex> 2 * i + 1 <font color = "green">// left {{---}} левый сын</font> right <tex>=</tex> 2 * i + 2 <font color = "green">// right {{---}} правый сын</font> j <tex>=</tex> left
'''if''' right <tex><</tex> A.heapSize '''and''' A[right] <tex>\leqslant</tex> A[left]
j <tex>=</tex> right
'''else if''' A[i] <tex>\leqslant</tex> A[j]
'''break'''
swap(A[i], A[j])
i <tex>=</tex> j
</code>
333
правки

Навигация