Сортировка хеш-таблицы (карта, словарь) дизайн структуры данных
Вот's описание структуры данных:
Он работает как обычная карта с,get
put
, а такжеremove
методы, но имеетsort
метод, который можно вызвать для сортировки карты. Тем не менее, картапомнит его отсортированная структура, поэтому последующие вызовы sort могут быть намного быстрее (если структура неСлишком много между вызовамиsort
).
Например:
Я звонюput
метод 1 000 000 раз.Я звоню
sort
метод.Я звоню
put
Способ еще 100 раз.Я звоню
sort
метод.Второй раз я звонюsort
метод должен быть гораздо быстрее, так как картаструктура не имеетт сильно изменился. Обратите внимание, что карта ненеобходимо поддерживать отсортированный порядок между вызовами.sort
Я понимаю, что это может быть невозможно, но ям в надежде на O (1),get
put
, а такжеremove
операции. Что-то вродеTreeMap обеспечивает гарантированные затраты времени O (log (n)) для этих операций, но всегда поддерживает отсортированный порядок (нетsort
метод).
И что'дизайн этой структуры данных?
Редактировать 1 - возвращение записей топ-К
Хотя яМне нравится слушать ответ на общий случай выше, мой вариант использования стал более конкретным: я нене нужно все сортировать; только верхние элементы K
Структура данных для эффективного возврататоп-К записи хеш-таблицы (карта, словарь)
Спасибо!