Учитывая биномиальное дерево (не кучу), когда root имеет ранг
deg(H) -> means number of nodes = 2^(deg(H)).
Найти O(k(logk+deg(H))
алгоритм времени, чтобы вернуть отсортированный массив из k наименьших элементов, без уничтожения исходного дерева .
O(klogk)
известно, но я не могу выполнить удаление min для исходного дерева.
Также, если k < Deg(H)
, как могу ли я гарантировать logk
?
Например root с 8 детьми и k = 3
. Если я создам новую кучу и скопирую туда 8 узлов, удаление элемента будет logDeg(H)
, а не logk
.