Stavo leggendo l'albero di ricerca binario e stavo pensando che perché abbiamo bisogno di BST? Tutte le cose che conosco possono anche essere ottenute usando matrici ordinate semplici. Ad es. - Per creare un BST che abbia n elementi, è necessario il tempo n*O(log n)
, ovvero O(nlog n)
e il tempo di ricerca è O(log n)
. Ma questa cosa può anche essere raggiunta usando l'array. Possiamo avere una matrice ordinata (richiede tempo O(nlog n)
) e il tempo di ricerca è anch'esso pari a O(log n)
, ad esempio ricerca binaria. Allora perché abbiamo bisogno di un'altra struttura dati? Ci sono altri usi/applicazioni di BST che li rendono così speciali?Perché alberi di ricerca binaria?
--Ravi
Qual è l'efficienza dell'inserimento/rimozione dalla versione dell'array? Se si tratta di spostare tutti gli altri elementi dell'array, ciò può essere costoso. –
ok ...trovare la posizione corretta dell'elemento nuovo/esistente sarebbe ancora O (log n), ma sì lo spostamento sarà un problema ... ma solo questo .... come per i testi che ho letto, sembra che loro (BST) sono molto speciali? Voglio sapere di più su cose che li rendono così speciali. –
possibile duplicato di [binary search vs binary search tree] (http://stackoverflow.com/questions/5968937/binary-search-vs-binary-search-tree) – nawfal