Come si dimostra che l'altezza prevista di un albero di ricerca binario creato casualmente con nodi è ? C'è una prova in CLRS Introduzione agli algoritmi (capitolo 12.4), ma non lo capisco.
Come si dimostra che l'altezza prevista di un albero di ricerca binario creato casualmente con nodi è ? C'è una prova in CLRS Introduzione agli algoritmi (capitolo 12.4), ma non lo capisco.
Risposte:
Pensiamo prima a questo in modo intuitivo. Nel migliore dei casi, l'albero è perfettamente bilanciato; nello scenario peggiore, l'albero è completamente sbilanciato:
A partire dal nodo radice , questo albero a sinistra ha il doppio del numero di nodi a ciascuna profondità successiva, in modo tale che l'albero abbia n = ∑ h i = 0 2 i = 2 h + 1 - 1 nodi e un'altezza h (che è in questo caso 3). Con un po 'di matematica, n ≤ 2 h + 1 - 1 → h ≤ ⌈ log 2 ( , ovveroaltezza O ( log n ) . Per l'albero completamente sbilanciato, l'altezza dell'albero è semplicemente n - 1 → O ( n ) . Quindi abbiamo i nostri limiti.
Se stessimo costruendo un albero bilanciato da un elenco ordinato , sceglieremmo l'elemento centrale come nodo radice. Se invece stiamo costruendo casualmente un albero, è probabile che uno qualsiasi dei n nodi sia raccolto e l'altezza del nostro albero sia: h e i g h t t r e e = 1 + max ( h e i g h t l e , h e i g h t r Sappiamo che in un albero di ricerca binario, la sottostruttura sinistra deve contenere solo chiavi inferiori al nodo radice. Pertanto, se scegliamo casualmente l'elemento i t h , la sottostruttura sinistra hai-1elementi e la sottostruttura destra han-ielementi, quindi in modo più compatto: h
Come sono certo che hai notato, mi sono leggermente discostato dal modo in cui CLRS lo dimostra, perché CLRS utilizza due tecniche di prova relativamente comuni che sono sconcertanti per i non iniziati. Il primo è usare esponenti (o logaritmi) di ciò che vogliamo trovare (in questo caso altezza), il che rende la matematica un po 'più chiara; il secondo è usare le funzioni dell'indicatore (che sto per ignorare qui). CLRS definisce l' altezza esponenziale come , quindi la ricorrenza analoga è Y n = 2 × max ( Y i.
Supponendo che l'indipendenza (che ogni disegno di un elemento (tra gli elementi disponibili) sia la radice di una sottostruttura sia indipendente da tutti i disegni precedenti), abbiamo ancora la relazione: per i quali ho eseguito due passaggi: (1) spostando1
A questo punto, CLRS tira una prova di induzione dal loro ... repertorio di esperienza matematica, uno che include un'identità∑ n - 1 i = 0
n^k
), la conclusione è la stessa perché k
viene rilasciata nella notazione big-O (il modo 3 è stato eliminato). Ma se sostituissimo con qualcosa di esponenziale ( e^n
), sarebbe comunque un limite superiore corretto , ma non stretto . Sappiamo che l'altezza prevista è almeno logaritmica, quindi determinare che sia al massimo logaritmico la rende stretta.