O (n1 * log (N2)) er den gjennomsnittlige fall, selv om vi har to flette noen usortert listen inn i en BST. Vi er ikke å utnytte det faktum at listen er sortert liste eller en BST.
Ifølge meg kan anta en BST har N1-elementer og andre har n2 elementer. Nå konvertere en BST inn i en Ordnet Array liste L1 i O (n1).
Fusjonerte BST (BST, Array)
if (Array.size == 0) retur BST if (Array.size == 1) sette inn elementet i BST. returnere BST;
Finn indeksen i matrisen som venstre element <BST.rootnode og rette element> = BST.rootnode si Index. if (BST.rootNode.leftNode == null) // dvs. ingen venstre noden {sett hele rekken fra Index til 0 til venstre fra BST og} else {Fusjonert BST (BST.leftNode, Array {0 til indeks})}
if (BST.rootNode.rightNode == null) // dvs. ingen rett node {sett hele rekken fra Index til Array.size til høyre fra BST} else {Fusjonert BST (BST.rightNode, Array {indeksen til å Array.size} )}
tilbake BST.
Denne algoritmen vil ta << tid enn O (n1 * log (N2)) som hver gang vi er partisjone array og BST å håndtere deloppgave.