tgoop.com/the_algorithms/4718
Last Update:
MO’s Algorithm
Представляет собой метод, используемый для эффективного ответа на запросы диапазона в массиве или последовательности.
Термин «МО» происходит от инициалов его изобретателей Миккеля Торупа и Питера М. Олсена.
Шаги алгоритма:
1. Сортируйте запросы по блоку, которому они принадлежат, а внутри блока — по их правой конечной точке.
2. Инициализируйте два указателя для представления текущего диапазона рассматриваемых элементов.
3. Выполните итерацию отсортированных запросов, соответствующим образом корректируя указатели для включения или исключения элементов из текущего диапазона.
4. По мере обработки каждого запроса алгоритм сохраняет ответ на запрос диапазона.
Сложность: O((N+Q)⋅*sqrt(N))
, где N
— размер массива и Q
— количество запросов.
BY Алгоритмы и структуры данных

Share with your friend now:
tgoop.com/the_algorithms/4718