Time Analýza operací binární vyhledávací strom

hlasů
0

Četl jsem o binární vyhledávací stromy, které, pokud se jedná o kompletní strom (všechny uzly s výjimkou koncové uzly mají dvě děti), které mají n uzly, pak není cesta může mít více než 1 + log n uzly.

Zde je výpočet já ... Můžete mi ukázat, kde jsem jít špatně ....

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)

Tak jak to číslo 1 + log n přijít ...?

Položena 26/09/2011 v 18:26
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Kratší Odpověď: počet xúrovní v kompletním (nebo dokonalé) binární strom je log2(n+1), kde nje počet uzlů (alternativně n = 2^(x-1)). Strom s xúrovní má výšku x-1. Nejdelší cesta od kořene do libovolný uzel obsahuje x = log2(n+1)uzly (a x-1hrany).

Právě proto, že n+1je síla 2, máme, že log2(n+1) = 1 + floor(log2(n)). Jinými slovy, 1 + log2(n)je správná horní mez, ale nikdy to není celé číslo.

Je jasné, pro mě, zda se xve vaší výpočet odkazuje na výšku nebo na několika úrovních.

Odpovězeno 26/09/2011 v 19:35
zdroj uživatelem

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