Название вопроса и текст, который вы цитируете, задают разные вещи. Я собираюсь обратиться к тому, что говорится в цитате, потому что выяснить, как дорого стоит построение BST, можно, просто взглянув на алгоритм.
Предположим, что за секунду можно было построить BST лучше, чем Ω (nlogn). С помощью двоичного дерева поиска вы можете прочитать отсортированный список за Θ (n) времени. Это означает, что я мог бы создать алгоритм сортировки следующим образом.
Algorithm sort(L)
B <- buildBST(L)
Sorted <- inOrderTraversal(B)
return Sorted
С помощью этого алгоритма я смогу отсортировать список лучше чем Ω (nlogn). Но, как вы сказали, это невозможно, потому что Ω (nlogn) является нижней границей. Таким образом, невозможно создать двоичное дерево поиска за время, превышающее Ω (nlogn).
Кроме того, поскольку алгоритм завершает работу, чтобы создать BST за O (nlogn), можно фактически сказать, что алгоритм является оптимальным по модели сравнения на основе