Pagini recente » Istoria paginii utilizator/bogdy9912 | Istoria paginii utilizator/deedee | Profil AlexMihai1801 | Profil Aricol | Diferente pentru heapuri intre reviziile 118 si 119
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.