Diferente pentru heapuri intre reviziile #118 si #119

Nu exista diferente intre titluri.

Diferente intre continut:

 
Sa presupunem ca vrem sa eliminam nodul de valoare $9$, aducand in locul lui nodul de valoare $X$. Insa $X$ poate fi orice numar mai mic sau egal cu $18$. Spre exemplu, $X$ poate fi $16$, caz in care va trebui urcat deasupra nodului de valoare $10$, sau poate fi $1$, caz in care va trebui cernut pana la nivelul frunzelor. Deoarece caderea si urcarea se pot face pe cel mult $[log N]$ niveluri, rezulta o complexitate a procedeului de $O(log N)$.
==code(cpp) |
Daca vrem sa inseram un nou element in heap, lucrurile sunt mult mai simple. Nu avem decat sa-l asezam pe a $N + 1$ - a pozitie in vector si apoi sa-l "promovam" pana la locul potrivit. Din nou, urcarea se poate face pe maxim $[log N]$ niveluri, de unde complexitatea logaritmica.
==code(cpp) |
void insert(Heap H, int N, int key) {
void insert(Heap H, int& N, int key) {
    H[++N] = key;
    percolate(H, N, N);
}

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.