O (n1 * журнал (n2)) представляет собой средний сценарий, даже если мы имеем 2 слияния любой несортированный список в BST. Мы не используя тот факт, что список отсортирован список или BST.
По мне Давайте предположим, один BST имеет n1 элементов и других имеет n2 элементов. Теперь преобразовать один BST в отсортированный массив Список L1 в O (n1).
Объединенное BST (BST, Array)
если (Array.size == 0) возвращение БСТ, если (Array.size == 1) вставить элемент в BST. вернуться BST;
Найти индекс в массиве, левая элемент <BST.rootnode и правый элемент> = BST.rootnode сказать индекс. если (BST.rootNode.leftNode == NULL) // т.е. нет левого узла {вставьте все массивы из индекса 0, в левую BST и} еще {Объединенное BST (BST.leftNode, массив {0} Индекс)}
если (BST.rootNode.rightNode == NULL) // т.е. нет правого узла {вставить все массивы из индекса в Array.size в правом BST} еще {Объединенное BST (BST.rightNode, массив {Указатель Array.size} )}
вернуться BST.
Этот алгоритм будет принимать << время, чем O (n1 * журнал (n2)), как каждый раз, когда мы разметка массива и BST для обработки подзадачи.