Analisi tempo delle operazioni di albero binario di ricerca

voti
0

Ho letto su alberi binari di ricerca che, se si tratta di un albero completo (tutti i nodi eccetto i nodi foglia hanno due figli) con n nodi, allora nessun percorso può avere più di 1 + log n nodi.

Ecco il calcolo che ho fatto ... mi puoi mostrare dove ho sbagliato ....

the first level of bst has only one node(i.e. the root)-->2^0
the second level have 2 nodes(the children of root)---->2^1
the third level has 2^3=8 nodes
 .
 .
the (x+1)th level has 2^x nodes

so the total number of nodes =n = 2^0 +2^1 +2^2 +...+2^x = 2^(x+1)-1
so, x=log(n+1)-1

now as it is a 'complete' tree...the longest path(which has most no of nodes)=x
and so the nodes experienced in this path is x+1= log(n+1)

Allora come ha fatto il numero 1 + log n venire ...?

È pubblicato 26/09/2011 alle 18:26
fonte dall'utente
In altre lingue...                            


1 risposte

voti
1

Risposta più breve: il numero xdi livelli in un albero completo (o perfetto) binario è log2(n+1), dove nè il numero di nodi (alternativamente, n = 2^(x-1)). Un albero con xlivelli ha altezza x-1. Il percorso più lungo dalla radice a qualsiasi nodo contiene x = log2(n+1)nodi (e x-1bordi).

Ora, perché n+1è una potenza di 2, abbiamo che log2(n+1) = 1 + floor(log2(n)). In altre parole, 1 + log2(n)è un corretto upper bound, ma non è mai un numero intero.

Non è chiaro a me se il xnel vostro calcolo si riferisce alla altezza o il numero di livelli.

Risposto il 26/09/2011 a 19:35
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more