O (n1 * log (n2)) est le scénario moyen de cas même si nous avons 2 fusion une liste non triés dans un BST. Nous n'utilisons pas le fait que la liste est la liste triée ou BST.
Selon moi Lets supposer un BST a n1 éléments et d'autres éléments a n2. Maintenant convertir un BST dans un tableau de la liste triée L1 en O (n1).
Fusionné BST (BST, Array)
if (Array.size == 0) return BST if (Array.size == 1) insérer l'élément dans le BST. retourner BST;
Trouvez l'index dans le tableau dont l'élément gauche <BST.rootnode et élément droit> = BST.rootnode dire Index. if (BST.rootNode.leftNode == null) // par exemple Aucun nœud gauche {insérer tout le tableau de l'index à 0 en gauche de BST et} else {Fusionné BST (BST.leftNode, Array {0} à l'index)}
if (BST.rootNode.rightNode == null) // ie pas de noeud droit {insérer tout le tableau de l'index à Array.size en droit de BST} else {Fusionné BST (BST.rightNode, Array {Index Array.size} )}
retour BST.
Cet algorithme prendra le temps que << O (n1 * log (n2)) comme à chaque fois que nous le partitionnement du tableau et BST pour gérer le sous-problème.