Структура данных типа очереди, позволяющая быстро определить позицию элемента. Есть? Положим есть у меня большой список элементов (уникальных строк).
В него элементы могут добавляться в конец, перемещаться внутри этого списка (не обмениваться), и удаляться из начала.
Может знаете такую структуру данных, которая позволит мне быстро (без перебора всего списка) по элементу определить номер его позиции в таком списке, такая структура ДОЛЖНА позволять быстро перемещать элементы (с обсчетом измененых позиций других элементов).
Кол-во элементов порядка 5 млн.
Идеальный вариант когда:
Время добавления в хвост: O(1)
Время получения из головы: O(1)
Время определения позиции: O(1) или O(log n)
Время перемещения одного элемента из конца в начало: O(log n) или O(1)
Приветствую любые ссылки. Спасибо.

21 Авг 2019 в 06:08
153 +1
0
Ответы
1

Для решения вашей задачи подойдет структура данных под названием "Linked List with Indexing". Это является комбинацией двух структур данных - связанного списка и индексированного массива. В этой структуре данных каждый элемент списка содержит ссылку на следующий элемент и индекс элемента в индексированном массиве.

Такая структура данных позволяет добавлять элементы в конец списка за O(1), получать элементы из начала списка за O(1), определять позицию элемента в списке за O(1) или O(log n) с использованием индексированного массива, и перемещать элементы из конца в начало списка за O(log n) или O(1).

Для большого списка уникальных элементов, такой подход может быть эффективным и быстрым. Однако, необходимо учитывать, что операции перемещения элементов могут потребовать пересчета индексов других элементов, что может занять дополнительное время.

Более подробную информацию и реализацию данной структуры данных можно найти в литературе или на специализированных ресурсах по алгоритмам и структурам данных.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир