La complexité algorithmique de TreeSet opérations en Java?

Je suis en train d'essayer d'éclaircir certaines choses au sujet de la complexité de certaines opérations de TreeSet. Sur la javadoc, il dit:

"Cette application fournit
garanti log(n) coût du temps pour les
les opérations de base (ajouter, supprimer et
contient)."

So far So good. Ma question est de savoir ce qui se passe sur addAll(), removeAll (), etc. Ici la javadoc pour Définir dit:

"Si la collection est également un
ensemble, les addAll fonctionnement efficace
modifie cette série, de sorte que sa valeur est
l'union des deux ensembles."

Est-il juste d'expliquer le résultat logique de l'opération ou est-il en donnant une indication sur la complexité? Je veux dire, si les deux ensembles sont représentés par exemple par les arbres rouge-noir, il serait mieux de faire en quelque sorte rejoindre les arbres qu'à "ajouter" chaque élément de l'un à l'autre.

Dans tous les cas, il est un moyen de combiner les deux TreeSets en un avec O(logn) de la complexité?

Vous en remercie d'avance. 🙂

Réponse à la réponse j'ai eu: je ne comprends pas très bien cette. Supposons que vous avez deux SortedSets qui n'ont pas d'-les éléments qui se chevauchent et qui sont représentés par des arbres rouge-noir. Comment se fait que vous ne pouvez pas vous joindre à eux depuis le "rejoindre" l'opération dans les arbres rouge-noir prendre en O(log(n+m)) de temps?

OriginalL'auteur Andreas K. | 2010-08-02