Sto cercando di chiarire alcune cose riguardanti la complessità in alcune delle operazioni di TreeSet. Sul javadoc si dice:Complessità computazionale delle operazioni TreeSet in Java?
"Questa implementazione fornisce registro garantita (n) Costo tempo per le operazioni di base (aggiungere, rimuovere e contiene)."
Fin qui tutto bene. La mia domanda è ciò che accade sul addAll(), removeAll() ecc Ecco il Javadoc per Set dice:
"Se la raccolta è specificato anche un set , l'operazione addAll efficacemente modifica questo insieme in modo che la sua il valore è l'unione dei due set. "
Sta solo spiegando il risultato logico dell'operazione o sta dando un suggerimento sulla complessità? Voglio dire, se i due set sono rappresentati, ad es. alberi rosso-neri sarebbe meglio unirsi in qualche modo agli alberi piuttosto che "aggiungere" ogni elemento di uno all'altro.
In ogni caso, esiste un modo per combinare due TreeSet in uno con la complessità O (logn)?
Grazie in anticipo. :-)
Rispondere alle risposte che ho ricevuto: Non riesco a capirlo. Supponiamo di avere due SortedSet con elementi senza sovrapposizione e rappresentati da alberi rosso-neri. Come mai non puoi unirti a loro dato che l'operazione di "join" in alberi rosso-neri richiede O (log (n + m))? –