63
правки
Изменения
Нет описания правки
}}
Псевдокод алгоритма:
<code style="display:inline-block">
'''function''' heapify():
siftDown(i)
</code>
===Слияние двух куч===
Даны две кучи <tex>a</tex> и <tex>b</tex>, размерами <tex>n</tex> и <tex>m</tex>, требуется объединить эти две кучи.
a.heapSize = a.heapSize + 1
a[a.heapSize - 1] = b[i]
a.heapify(a)
</code>
# В корне новой кучи будет находиться ответ.
Время работы алгоритма {{---}} <tex>O(k \log k)</tex>.
[[Файл:Min_heap_kth.png|thumb|center|650px|Пример при <tex>k = 5</tex>, красные {{---}} уже удаленные из кучи элементы, зеленые находятся в куче, а голубые {{---}} еще не рассмотрены.]]