Ich versuche einige Dinge in Bezug auf Komplexität in einigen der Operationen von TreeSet zu klären. Auf der javadoc heißt es:Rechnerische Komplexität von TreeSet-Operationen in Java?
"Diese Implementierung garantiert log (n) Zeitaufwand für die grundlegenden Operationen (Hinzufügen, Entfernen und enthält) zur Verfügung stellt."
So weit so gut. Meine Frage ist, was auf addAll geschieht(), removeAll() usw. Hier ist die javadoc für Set sagt:
„Wenn die angegebene Sammlung ist auch ein Satz, der addAll Betrieb effektiv diesen Satz modifiziert, so dass sein Wert ist die Vereinigung der beiden Sets. "
Erklärt es nur das logische Ergebnis der Operation oder gibt es einen Hinweis auf die Komplexität? Ich meine, wenn die zwei Mengen durch z.B. rot-schwarze Bäume wäre es besser, irgendwie die Bäume zu verbinden, als jedes Element von einem zum anderen "hinzuzufügen".
Gibt es in jedem Fall eine Möglichkeit, zwei TreeSets zu einem mit O (logn) Komplexität zu kombinieren?
Vielen Dank im Voraus. :-)
Antwort auf die Antworten, die ich bekam: Ich kann das nicht ganz verstehen. Angenommen, Sie haben zwei SortedSets, die keine überlappenden Elemente haben und durch rot-schwarze Bäume dargestellt werden. Wie kommt es, dass man ihnen nicht beitreten kann, da die "Join" -Operation in rot-schwarzen Bäumen O (log (n + m)) Zeit benötigt? –