Предположим, у меня есть сбалансированное BST (бинарное дерево поиска ). Каждый узел дерева содержит специальное поле count
, в котором подсчитываются все потомки этого узла + сам узел. Они называют эту структуру данных order statistics binary tree
.
Эта структура данных поддерживает две операции O (logN ):
rank(x)
--. количество элементов меньшеx
findByRank(k)
--найти узел с rank
==k
Теперь я хотел бы добавить новую операцию median()
для нахождения медианы. Могу ли я предположить, что эта операция O (1 ), если дерево сбалансировано?