find_min
/find_max
: $O(1)$insert
/push
: $O(\log{n})$ (heap binário) ou $\Theta(1)$ (amortizado, para outras implementações)delete_min
/delete_max
/pop
: $O(\log{n})$increse_key
/decrease_key
: $O(\log{n})$ (heap binário) ou $\Theta(1)$ (Fibonacci heap, Brodal queue)meld
(junção de dois heaps): $O(n)$ (heap binário), $O(\log{n})$ (Binomial) ou $\Theta(1)$ (outras implementações)sift_up
e sift_down
.sift_up
move um elemento para cima no heapsift_down
move um elemento para baixo no heapsift_down
é necessário e a complexidade de tempo é $O(n)$sift_down
do elemento.sift_down
da nova raiz.sift_down
com custo $\Theta(\log{n})$, logo, o heapsort tem complexidade $O(n\log{n})$introsort
, o algoritmo de ordenação por comparação não-estável da biblioteca padrão da linguagem de programação C++.