/ / Java: zbalansowane drzewo wyszukiwania binarnego - java, api, drzewo binarne

Java: zrównoważone drzewo wyszukiwania binarnego - java, api, drzewo binarne

Biorąc pod uwagę moje ostatnie (nieco udane) pytanie:

Problem algorytmiczny: określenie "sesji użytkownika"

Jestem prawie pewien, że sposobem na rozwiązanie go w sposób czysty jest użycie zrównoważonego drzewa binarnego (które dałoby n log m rozwiązanie problemu, gdzie na szczęście m będzie dość mały, nawet malutki, w porównaniu do n), jak podpowiadała jedna z odpowiedzi (odpowiedź, która przychodzi z jakimś pseudo-kodem).

Moje pytanie jest proste: czy domyślny interfejs API Java ma drzewo samowyrównujące?

Jeśli nie, czy wiesz o jakiejś implementacji takiego drzewa (Apache, kolekcje Google, cokolwiek)?

Jeśli nic nie wygląda dobrze, jakie byłoby najlepsze drzewo do wdrożenia takiego zrównoważonego drzewa binarnego?

Odpowiedzi:

4 dla odpowiedzi № 1

java.util.TreeSet jest zrównoważoną implementacją drzewa. Gwarantuje czas dostępu do O (logn), modyfikując strukturę drzewa, gdy jest to konieczne, dzięki czemu nie zostanie zdegenerowany na listę.

Główne pytanie brzmi: jakie operacje potrzebujesz z tego drzewa i czy TreeSet wspiera je.