Хотя временная сложность построения минимальной кучи выглядит как O(nlogn), можно доказать, что она O(n).
Почему бы нам не применить ту же логику и сказать, что временная сложность сбалансированного бинарного дерева поиска также равна O(n).
Хотя временная сложность построения минимальной кучи выглядит как O(nlogn), можно доказать, что она O(n).
Почему бы нам не применить ту же логику и сказать, что временная сложность сбалансированного бинарного дерева поиска также равна O(n).
Помимо того факта, что BST обеспечивает порядок, в то время как куча только гарантирует, что элемент больше, чем элементы ниже (для максимальной кучи), сложность построения кучи зависит от стратегии построения. Это вики-изображение наглядно демонстрирует это.
Если вы используете подход siftDown
(снизу вверх), сложность будет O(n)
, а с siftUp
будет O(nlogn)
, как и в BST.
Почему мы не можем применить ту же логику и сказать, что временная сложность сбалансированного бинарного дерева поиска также равна O(n)?
Восходящий подход к построению кучи неприменим для BST, если входной список уже не отсортирован, но в этом случае у вас уже есть O(nlogn)
сложность из-за сортировки.