2015-06-10 3 views
0

Какова временная сложность операции lowerKey() в Java-реализации TreeMap?Временная сложность Java TreeMap - lowerKey

Я думаю, что это журнал (n), но я не могу найти его нигде в документации.

Сложность более основных операций хорошо документирована:

Эта реализация обеспечивает гарантированную журнала (п) затраты времени на ContainsKey, получить, поставить и удалить операции.

BTW: Меня также интересует сложность subMap(). Я предполагаю, что сложность log (n) lowerKey() позволит log (n) время для постоянного размераsubMap().

+0

'lowerKey' определенно O (log n). 'subMap' - это O (1) и возвращает реализацию с дополнительными служебными данными O (log n). –

ответ

4

lowerKey() - это поиск в сбалансированном двоичном дереве поиска, поэтому это, очевидно, O(log n). Возможно, вам захочется прочитать исходный код, например. от here, чтобы увидеть, как проходит дерево.

Аналогично, для каждой операции с NavigableMap, возвращенной с subMap(), также требуется O(log n), потому что вам нужно будет пересечь дерево, чтобы найти нужные элементы.

Смежные вопросы