O (n1 * log (N2)) is de gemiddelde case scenario zelfs als we 2 samenvoegen elke ongesorteerde lijst in een BST. We zijn niet gebruik te maken van het feit dat de lijst is gesorteerde lijst of een BST.
Volgens mij Laten we aannemen dat een BST heeft n1 elementen en andere heeft n2 elementen. Nu zetten een BST in een gesorteerde array List L1 in O (n1).
Samengevoegd BST (BST, Array)
if (Array.size == 0) return BST if (Array.size == 1) Plaats het element in de BST. terugkeer BST;
Zoek de index in de array waarvan de linker- element <BST.rootnode en rechts element> = BST.rootnode zeggen Index. if (BST.rootNode.leftNode == null) // ie geen links knooppunt {voeren alle array-index op 0 in een linker van BST en} else {Samengevoegd BST (BST.leftNode, Array {0 naar Index})}
if (BST.rootNode.rightNode == null) // ie Geen recht knooppunt {voeren alle array-index naar Array.size naar rechts van BST} else {Samengevoegd BST (BST.rightNode, Array {Index Array.size} )}
terug BST.
Dit algoritme zal << tijd dan O (n1 * log (N2)) nemen elke keer als we zijn het verdelen van de array en BST naar het deelprobleem te behandelen.