Popište operace vložení prvku a odebrání minima binární minimové haldy a jejich časové složitosti.
→ vlastnost tvaru haldy dovoluje přidat okamžitě nový prvek nejspodnější hladiny
→ opakuje dokud vlastnost není splněna nebo se k(l) nedostane až do kořene
HeapInsert(halda H, klíč k)
{
H.push_back(k);
v = H.size()-1;
BubbleUp(v)
}
BubbleUp(v):
{
Dokud není p kořen:
p := předek(v)
Pokud k(p) <= k(v):
return
swap(k(v), k(p))
v := p
}
Na každé hladině strávíme O(1) operací a procházených hladin je nejvýše logaritmicky mnoho, celkem tedy O(log n).
HeapFindMin(H)
⇒ časová složitost : O(1)
HeapExtractMin(H)