1) Qual è la differenza tra alberi AVL e albero splay?
Essi sono simili nella struttura e le operazioni che chiamiamo su di loro. La differenza è che in albero splay, dopo ogni operazione, cerchiamo di mantenere l'albero quasi perfettamente bilanciato in modo che le operazioni future impiega meno tempo.
2) Su quali basi si fa a selezionare questi alberi?
albero splay sono sempre meglio di alberi binari di ricerca quando, vostra applicazione si occupa un sacco di dati nella struttura, ma, avrà bisogno di accedere a un sottoinsieme dei dati molto frequentemente di altri. In questo caso i dati si accede frequentemente arriverà vicino alla radice come risultato della splay. Inoltre, ogni nodo può quindi essere letta con meno tempo rispetto a prima.
Come regola generale per la selezione di questi alberi, se avete bisogno di log (n) "Media" per un periodo di operazioni albero quindi utilizzare albero splay. albero binario non può garantire questo.
3) Quali sono di positive e di negative di questi alberi?
Positivi per entrambi è che si ottiene in giro log (n) in entrambe queste strutture di dati teoricamente.
Come albero splay menzionati hanno log media (n) su una serie di operazioni. Ciò significa che, forse hai n complessità temporale per un'operazione almeno una volta in quella retata. Ma questo sarà compensato quando si accede alle voci frequenti.
Il negativo della albero binario di ricerca è che, è necessario essere fortunati ad avere log (n) sempre. Se i tasti non sono casuali, poi l'albero si ridurrà a una lista come modulo con un solo lato.
4) Quali sono le prestazioni di questi alberi in termini di o-grande?
albero Splay log (n), in media, per un gruppo di operazioni di alberi. Albero binario di log (n) solo se le chiavi sono in corso in casuale.
I risultati sul tempo di esecuzione sono evidenti qui splay albero runtime profiling
È possibile vedere la differenza runtime nella ricerca con e senza divaricazione.