Джава.Преемник TreeSet - PullRequest
       25

Джава.Преемник TreeSet

1 голос
/ 06 декабря 2011

Меня интересует такой вопрос: Красно-Черное дерево обеспечивает эффективное выполнение таких операций, как преемник (первый элемент выше этой записи) и предшественник , т.е. в лог - время.В документации Java написано, что для предоставления такой операции в качестве преемника вы можете просто использовать subSet и затем взять наименьший элемент в subSet .Но это время журнала?Если да, то какова реализация subSet ? (Меня интересует алгоритм, поэтому это может быть всего несколько слов, а не необходимый код)

Спасибо.

1 Ответ

5 голосов
/ 06 декабря 2011

Я бы просто прочитал код, чтобы увидеть, как он работает.

Я полагаю, что SubSet - это O (log N). Более естественным подходом будет использование методов lower(E) и higher(E), предназначенных для этого.

http://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html

...