De ce contează?
Imaginează-ți coada de la urgențe. Nu contează cine a venit primul: când se eliberează un medic, intră pacientul cel mai grav. Cineva sosit acum cu o problemă critică trece înaintea altuia care aștepta de o oră cu o tăietură ușoară. Mereu „iese" cel mai prioritar — și totuși nimeni nu ține toată sala sortată în fiecare clipă. Un heap face exact asta cu numerele: îți dă instant maximul, fără să-și piardă timpul ordonând tot.
Intuiția
Un heap este un arbore binar complet cu o singură regulă: fiecare părinte
este mai mare sau egal cu copiii lui (la max-heap). Nu cere ca tot arborele să
fie sortat — cere doar atât cât să garanteze că maximul stă mereu în vârf.
Iar fiindcă arborele e complet (umplut nivel cu nivel, de la stânga), îl putem
ține pe un simplu vector: copiii nodului i sunt la 2i și 2i+1.
Heap-ul nu sortează datele — garantează doar o ordine parțială: „părintele mai prioritar decât fiii". Asta e mult mai ieftin de întreținut decât ordinea completă și e exact suficient dacă tot ce vrei e maximul (sau minimul). Plătești doar pentru ce folosești.