Многомерное дерево отрезков — различия между версиями
VVolochay (обсуждение | вклад) |
VVolochay (обсуждение | вклад) |
||
| Строка 27: | Строка 27: | ||
F. P. Preparata, M.I. Shamos - Вычислительная геометрия [http://pogorskiy.narod.ru/rectq.htm Главы о региональном поиске] | F. P. Preparata, M.I. Shamos - Вычислительная геометрия [http://pogorskiy.narod.ru/rectq.htm Главы о региональном поиске] | ||
| − | == | + | ==См. также== |
[[Дерево отрезков. Построение]] <br/> | [[Дерево отрезков. Построение]] <br/> | ||
[[Сжатое многомерное дерево отрезков]] <br/> | [[Сжатое многомерное дерево отрезков]] <br/> | ||
[[Многомерное дерево Фенвика]] <br/> | [[Многомерное дерево Фенвика]] <br/> | ||
Версия 09:27, 15 июня 2011
Дерево отрезков можно обобщить в многомерный случай для решения таких задач, как поиск суммы на прямоугольнике(или гиперпрямоугольной области).
| Задача: |
| Рассматривается задача регионального поиска. Задано множество точек в мерном евклидовом пространстве. Образцом для поиска является гиперпрямоугольная область.Найти сумму/минимум/максимум. |
Содержание
Построение
Пусть задано -мерное пространство с координатными осями .Т.к. при построении одномерного дерева, индексы массива разбиваются на отрезки, тогда при построении многомерного дерева координаты будут обрабатываться сначала по , затем по и так далее...Далее дерево строится рекурсивно: далее координаты по обрабатываем по координатам , (по всем возможным координатам)и далее по аналогии...То есть получается, что основная идея построения многомерного дерева отрезков - вкладывание деревьев отрезка друг в друга.
Пример задачи, в которой удобно использовать многомерное дерево отрезков
Пример двумерного дерева
Рассмотрим процесс построения предельного случая при . Пусть задан массив элементов размера .Упорядочим массив по первой координате и построим на нем дерево отрезков.После этого для каждого узла дерева строим еще одно дерево отрезков по координате , которые находятся на том же отрезке.
К примеру,двумерное дерево размером
Анализ и оценка структуры
Строится такое дерево за линейное время. Структура использует памяти, и отвечает на запрос за , где -размерность дерева.
Ответ на запрос в таком дереве будет производиться так же,как и построение: сначала по координате , затем, когда дошли до какой-либо вершины по первой координате, вызвать запрос от этого же дерева по и так далее.Получается, что для мерного дерева запрос выполняется за (для рассмотренного двумерного дерева будет )
Источники
e-maxx.ru: Дерево отрезков
F. P. Preparata, M.I. Shamos - Вычислительная геометрия Главы о региональном поиске
См. также
Дерево отрезков. Построение
Сжатое многомерное дерево отрезков
Многомерное дерево Фенвика
