Я ищу guava TreeRangeMap, который, кажется, очень хорошо подходит для моих потребностей в проекте. В java-документах говорится, что он основан на стандарте (java standard?) TreeMap, который имеет O (log (n)) время для получения, размещения и следующего.TreeRangeMap Сроки и космические сложности
Но TreeRangeMap должен быть каким-то реализация дерева диапазона, что в соответствии с этим SO question имеет O (K + журнала (п)) временную сложность для запросов, O (п) пространство, с к быть размером диапазона ?. Может ли кто-нибудь подтвердить это?
Меня также очень интересует временная сложность операции TreeRangeMap.subRangeMap(). Имеет ли он тот же O (k + log (n))?
Спасибо.
Он, кажется, не указывает, какой алгоритм он использует, но я могу себе представить, что это фактически [B + tree] (http://en.wikipedia.org/wiki/B+_tree), который является стандартным хранилищем баз данных datastructure для поддержки запросов диапазона. – Domi
Операция 'subRangeMap' отправляет запрос и создает новую карту, поэтому, если ваш диапазон содержит значения k, вы, вероятно, закончите сложность одного запроса диапазона + k вставки. – Domi