Analiza czasu operacji wyszukiwania binarne drzewo

głosy
0

Czytałem o binarne drzewo poszukiwań, że jeśli to jest pełne drzewo (wszystkie węzły z wyjątkiem węzłów liściowych mają dwoje dzieci) o n węzłów, to nie ścieżka może mieć więcej niż 1 + log n węzłach.

Oto wyliczenie zrobiłem ... możesz mi pokazać, gdzie popełniłam błąd ....

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)

To skąd numer 1 + log n wymyślić ...?

Utwórz 26/09/2011 o 18:26
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Krótsza odpowiedź: liczba xpoziomów w pełnej (lub idealny) binarne drzewo jest log2(n+1), gdzie nto liczba węzłów (alternatywnie n = 2^(x-1)). Drzewo z xpoziomów ma wysokość x-1. Najdłuższy ścieżkę od korzenia do dowolnego węzła zawiera x = log2(n+1)węzły (i x-1krawędzie).

Teraz ponieważ n+1jest potęgą 2, które mamy log2(n+1) = 1 + floor(log2(n)). Innymi słowy, 1 + log2(n)jest to poprawna górna granica, ale nigdy nie jest liczbą całkowitą.

Jest dla mnie jasne, czy xw obliczeniach odnosi się do wysokości lub liczby poziomów.

Odpowiedział 26/09/2011 o 19:35
źródło użytkownik

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