Изменения

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

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

116 байт добавлено, 23:15, 5 июня 2015
Нет описания правки
}}
Псевдокод алгоритма:
<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>, красные {{---}} уже удаленные из кучи элементы, зеленые находятся в куче, а голубые {{---}} еще не рассмотрены.]]
63
правки

Навигация