Analiza operațiunilor de timp arbore binar de căutare

voturi
0

Am citit despre copaci binar de căutare că, dacă acesta este un arbore complet (toate nodurile cu excepția nodurilor frunză au doi copii) având n noduri, atunci nici o cale poate avea mai mult de 1 + log n noduri.

Iată calculul am făcut ... pot să-mi arăt unde am gresit ....

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)

Atunci cum a apărut numărul 1 + n log veni ...?

Întrebat 26/09/2011 la 18:26
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Răspuns mai scurt: numărul xde niveluri într - un copac complet (sau perfectă) binar este log2(n+1), în cazul în care neste numărul de noduri ( în mod alternativ, n = 2^(x-1)). Un copac cu xnivele are înălțime x-1. Calea cea mai lungă din rădăcina oricărui nod conține x = log2(n+1)noduri (și x-1muchii).

Acum , pentru că n+1este o putere de 2, avem asta log2(n+1) = 1 + floor(log2(n)). Cu alte cuvinte, 1 + log2(n)este o corectă superior legat, dar niciodată nu este un număr întreg.

Nu este clar pentru mine dacă xîn calcul dumneavoastră se referă la înălțimea sau numărul de niveluri.

Publicat 26/09/2011 la 19:35
sursa de către utilizator

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