Posortowana struktura struktury tabeli mieszania (mapa, słownik)

Oto opis struktury danych:

Działa jak zwykła mapa zget, put, iremove metody, ale masort metoda, która może zostać wywołana do sortowania mapy. Jednak mapapamięta jego posortowana struktura, więc kolejne wywołania do sortowania mogą być znacznie szybsze (jeśli struktura nie zmienia zbytnio między wywołaniami)sort).

Na przykład:

Dzwonię doput metoda 1 000 000 razy.
Dzwonię dosort metoda.
Dzwonię doput metoda 100 razy więcej.
Dzwonię dosort metoda.

Drugi raz dzwonię dosort metoda powinna być o wiele szybsza, ponieważ struktura mapy niewiele się zmieniła. Zauważ, że mapa nie musi utrzymywać posortowanej kolejności między połączeniamisort.

Rozumiem, że to może nie być możliwe, ale mam nadzieję na O (1)get, put, iremove operacje. Coś jakTreeMap zapewnia gwarantowany koszt czasu O (log (n)) dla tych operacji, ale zawsze utrzymuje uporządkowany porządek (niesort metoda).

Jaki jest projekt tej struktury danych?

Edytuj 1 - zwracając top-K wpisów

Chociaż z przyjemnością wysłucham odpowiedzi na powyższy ogólny przypadek, mój przypadek użycia stał się bardziej szczegółowy: nie potrzebuję sortowania całej rzeczy; tylko top K elementów.

Struktura danych do efektywnego zwrotutop-K wpisy tablicy mieszającej (mapa, słownik)

Dzięki!

questionAnswers(6)

yourAnswerToTheQuestion