Сортировка хеш-таблицы (карта, словарь) дизайн структуры данных

Вот описание структуры данных:

Он работает как обычная карта сget, put, а такжеremove методы, но имеетsort метод, который можно вызвать для сортировки карты. Тем не менее, картапомнит его сортированная структура, поэтому последующие вызовы сортировки могут быть намного быстрее (если структура не слишком сильно меняется между вызовамиsort).

Например:

Я звонюput метод 1 000 000 раз.
Я звонюsort метод.
Я звонюput Способ еще 100 раз.
Я звонюsort метод.

Второй раз я звонюsort Метод должен быть намного быстрее, так как структура карты не сильно изменилась. Обратите внимание, что карта не должна поддерживать отсортированный порядок между вызовамиsort.

Я понимаю, что это может быть невозможно, но я надеюсь на O (1)get, put, а такжеremove операции. Что-то вродеTreeMap обеспечивает гарантированные затраты времени O (log (n)) для этих операций, но всегда поддерживает отсортированный порядок (нетsort метод).

Так каков дизайн этой структуры данных?

Редактировать 1 - возвращение записей топ-К

Хотя я бы с удовольствием выслушал ответ на общий случай выше, мой вариант использования стал более конкретным: мне не нужно все сортировать; только верхние элементы K

Структура данных для эффективного возврататоп-К записи хеш-таблицы (карта, словарь)

Спасибо!

Ответы на вопрос(6)

Ваш ответ на вопрос