Это позволяет дополнить (сбалансированное) дерево поиска дополнительной информацией, которую можно использовать для осуществления поиска по индексу в логарифмическом времени.Такое расширенное дерево поиска можно назвать деревом статистики заказов .
. Увеличение дерева не влияет на асимптотическую сложность в худшем случае основных операций (вставка, поиск, стирание): их худшееслучай все еще логарифмический.Я не знаю, предотвращает ли она амортизированную постоянную сложность, которая требуется для операций стирания и подсказки вставки упорядоченных ассоциативных контейнеров.
Однако асимптотическая сложность не является единственным критерием для функции.Дополнение дерева увеличивает коэффициент сложности логарифмических операций, делая все (или большинство) других операций более медленными.Это также увеличивает пространственные издержки структуры данных.Таким образом, то, что такая структура данных возможна, не обязательно означает, что было бы неплохо использовать ее для реализации универсальных ассоциативных контейнеров, предоставляемых стандартной библиотекой.
Нет.В стандартной библиотеке нет контейнера, основанного на дереве поиска с поиском по логарифмическому индексу.
Я нашел предложение n3700 , основанное на библиотеке компонентов Boost tree, в которой предлагается добавить общие структуры дерева.Он включает класс rank_tree
, который выглядит как расширенное дерево поиска, которое предоставляет искомую операцию.