Questo non è compito Sto prendendo una classe di strutture dati e di recente abbiamo finito gli alberi. Alla fine della lezione, il mio professore ha mostrato questa immagine. Perché l'inserimento di elementi sequenziali in un albero richiede più tempo rispetto all'inserimento di elementi casuali in un albero?
ConcreteBTree è un albero binario non bilanciato. Ho alcune domande sui tempi necessari per completare queste procedure.
Perché ci vuole molto di più tempo per inserire 100.000 elementi sequenziali in ConcreteBTree di quello necessario per inserire elementi casuali in esso? La mia intuizione sarebbe che, poiché gli elementi sono sequenziali, dovrebbe impiegare meno tempo di quanto occorra per inserire 1.000.000 di elementi casuali.
Perché i tempi di insert() e find() di ConcreteBTree con elementi casuali sono così ravvicinati? È perché entrambi hanno la stessa complessità temporale? Ho pensato che fosse inserto O (1) e trovare era O (n)
Mi piacerebbe davvero capire che cosa sta succedendo qui, ogni spiegazione sarebbe molto apprezzato. Grazie
L'inserimento di elementi sequenziali in un albero senza bilanciamento è solo la cosa peggiore che si possa fare. In pratica finirai per creare una lista collegata, dato che finirai sempre per utilizzare solo il nodo sinistro o solo il nodo giusto. – dlev