Comment fusionner deux BST est efficace?

Comment fusionner deux arbres binaires de maintenir la propriété de BST?

Si nous décidons de prendre chaque élément de l'arbre et de l'insérer dans l'autre, la complexité de cette méthode serait O(n1 * log(n2)), où n1 est le nombre de nœuds de l'arbre (dire T1), qui nous ont séparés, et n2 est le nombre de nœuds de l'autre arbre (dire T2). Après cette opération, un seul BST a n1 + n2 nœuds.

Ma question est: peut-on faire mieux que O(n1 * log(n2))?

  • L'insertion de la racine de l'arbre 1 arbre 2 ne fonctionnera pas dans tous les cas.
  • Vous faites l'hypothèse que tous les arbres binaires équilibrés. (Par exemple, s'écartent les arbres ne sont pas) je pense Également que votre complexité est un peu hors. Parce que n2 est en augmentation, l'arbre va plus profondément que vous insérez des valeurs. Peut-être (n1 + n2) / 2 est une meilleure approximation (Parce qu'au début de l'insert, il est O(log n2) pour insérer et à la fin il est O(log(n1 + n2)).
  • Teran, un<-c->h union b<-d->f par exemple, leur intervalle [a,h] et [b,f] se chevauchent et donc ne peut être insérée dans un autre comme un nœud feuille
InformationsquelleAutor gowth08 | 2009-06-17