Time analyse av binære søketre operasjoner

stemmer
0

Jeg leste om binære søketrær som om det er en komplett tre (alle noder unntatt bladnoder har to barn) som har n noder, så ingen vei kan ha mer enn ett + log n noder.

Her er regnestykket jeg gjorde ... kan du vise meg hvor jeg går galt ....

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)

Så hvordan ble nummer 1 + log n komme opp ...?

Publisert på 26/09/2011 klokken 17:26
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Kortere svar: antall xnivåer i en komplett (eller perfekt) binært tre er log2(n+1), der ner antall noder (alternativt n = 2^(x-1)). Et tre med xnivåer har høyde x-1. Den lengste banen fra roten til enhver node inneholder x = log2(n+1)noder (og x-1kanter).

Nå fordi n+1er en potens av 2, har vi det log2(n+1) = 1 + floor(log2(n)). Med andre ord, 1 + log2(n)er en korrekt øvre grense, men det er aldri et heltall.

Det er uklart for meg om det xi beregningen refererer til høyden eller antall nivåer.

Svarte 26/09/2011 kl. 18:35
kilden bruker

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