Pagini recente » Diferente pentru heapuri intre reviziile 74 si 75 | Monitorul de evaluare | Diferente pentru runda/test_mustang intre reviziile 3 si 2 | Monitorul de evaluare | Diferente pentru heapuri intre reviziile 119 si 118
Diferente pentru
heapuri intre reviziile
#119 si
#118
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.