Estoy tratando de aclarar algunas cosas con respecto a la complejidad en algunas de las operaciones de TreeSet. En el javadoc que dice:¿Complejidad computacional de las operaciones TreeSet en Java?
"Esta aplicación proporciona registro garantizado (n) Coste de tiempo para los operaciones básicas (añadir, eliminar y contiene)."
Hasta ahora todo bien. Mi pregunta es lo que sucede en addAll(), removeAll(), etc. Aquí el Javadoc para Set dice:
"Si la colección especificada es también un conjunto , la operación addAll efectivamente modifica este conjunto de manera que su el valor es la unión de los dos conjuntos ".
¿Está simplemente explicando el resultado lógico de la operación o está dando una pista sobre la complejidad? Quiero decir, si los dos conjuntos están representados por, por ejemplo, árboles rojo-negro sería mejor unirse a los árboles que "agregar" cada elemento de uno a otro.
En cualquier caso, ¿hay alguna manera de combinar dos TreeSets en uno con complejidad O (logn)?
Gracias de antemano. :-)
Respondiendo a las respuestas que obtuve: No puedo entender esto. Supongamos que tiene dos SortedSets que no tienen elementos superpuestos y están representados por árboles rojo-negro. ¿Cómo es que no puedes unirte a ellos ya que la operación de "unión" en árboles rojo-negro toma el tiempo O (log (n + m))? –