Jump to content

Дерево диапазона

Дерево диапазона
Тип дерево
Изобретенный 1979
Изобретён Джон Луис Бентли
Временная сложность в обозначении большого О
Операция Средний Худший случай
Поиск
Пространственная сложность
Космос

В информатике дерево диапазонов — это упорядоченная древовидная структура данных, содержащая список точек. обо всех точках в заданном диапазоне Он позволяет эффективно сообщать и обычно используется в двух или более измерениях. Деревья хребта были представлены Джоном Луи Бентли в 1979 году. [1] Подобные структуры данных были независимо открыты Люкером. [2] Ли и Вонг, [3] и Уиллард. [4] Дерево диапазонов является альтернативой дереву k -d . По сравнению с деревьями k -d деревья диапазонов обеспечивают более быстрое время запроса (в нотации Big O ). но хуже хранить , где n — количество точек, хранящихся в дереве, d — размерность каждой точки, а k — количество точек, сообщаемых данным запросом.

Бернар Шазель улучшил это, чтобы время запроса и пространственная сложность . [5] [6]

Структура данных [ править ]

Пример одномерного дерева диапазонов.
Пример одномерного дерева диапазонов. Каждый узел, не являющийся листом, хранит наибольшее значение своего левого поддерева.

Дерево диапазонов на наборе одномерных точек представляет собой сбалансированное двоичное дерево поиска по этим точкам. Точки, хранящиеся в дереве, хранятся в листьях дерева; каждый внутренний узел хранит наибольшее значение своего левого поддерева.Дерево диапазонов на множестве точек в d -размерах представляет собой рекурсивно определенное многоуровневое двоичное дерево поиска . Каждый уровень структуры данных представляет собой двоичное дерево поиска по одному из d -измерений.Первый уровень представляет собой двоичное дерево поиска по первой из d -координат. Каждая вершина v этого дерева содержит связанную структуру, которая представляет собой ( d −1)-мерное дерево диапазонов в последних ( d −1)-координатах точек, хранящихся в поддереве v .

Операции [ править ]

Строительство [ править ]

Одномерное дерево диапазонов на наборе из n точек — это двоичное дерево поиска, которое можно построить в время. Деревья диапазонов в более высоких измерениях строятся рекурсивно путем построения сбалансированного двоичного дерева поиска по первой координате точек, а затем для каждой вершины v в этом дереве строится ( d −1)-мерное дерево диапазонов по точкам, содержащимся в поддерево v . Построение дерева диапазонов таким способом потребует время.

Это время построения можно сократить для двумерных деревьев диапазонов до . [7] Пусть S — набор из n двумерных точек. Если S содержит только одну точку, верните лист, содержащий эту точку. В противном случае постройте связанную структуру S , 1-мерное дерево диапазонов по y -координатам точек в S . Пусть x m — медианная x -координата точек. Пусть SL и будет набором точек с координатой x, меньшей или равной x m, пусть SR большей , будет набором точек с координатой x, чем x m . Рекурсивно постройте v L 2-мерное дерево диапазонов на SL v , и R , 2-мерное дерево диапазонов на SR , . Создайте вершину v с левым дочерним элементом v L и правым дочерним элементом v R .Если мы отсортируем точки по их координатам y в начале алгоритма и сохраним этот порядок при разделении точек по их координате x , мы сможем построить связанные структуры каждого поддерева за линейное время.Это сокращает время построения двумерного дерева диапазонов до , а также сокращает время построения d -мерного дерева диапазонов до .

Запросы диапазона [ править ]

Запрос одномерного диапазона.
Запрос одномерного диапазона [ x 1 , x 2 ]. Будут сообщены точки, хранящиеся в поддеревьях, заштрихованных серым цветом. find( x 1 ) и find( x 2 ) будут сообщены, если они находятся внутри интервала запроса.

Запрос диапазона в дереве диапазонов сообщает набор точек, лежащих внутри заданного интервала. Чтобы сообщить точки, которые лежат в интервале [ x 1 , x 2 ], мы начинаем с поиска x 1 и x 2 . В какой-то вершине дерева пути поиска x 1 и x 2 разойдутся. Пусть v Split будет последней вершиной, общей для этих двух путей поиска. Для каждой вершины v в пути поиска от v, разделенного до x 1 , если значение, хранящееся в v, больше x 1 , сообщите о каждой точке в правом поддереве v . Если v является листом, сообщите значение, хранящееся в v , если оно находится внутри интервала запроса. Аналогично, отчет обо всех точках, хранящихся в левых поддеревьях вершин со значениями меньше x 2 вдоль пути поиска от v Split до x 2 , и отчет о листе этого пути, если он находится в пределах интервала запроса.

Поскольку дерево диапазонов представляет собой сбалансированное двоичное дерево, пути поиска к x 1 и x 2 имеют длину . Отчет обо всех точках, хранящихся в поддереве вершины, может быть выполнен за линейное время с использованием любого обхода дерева алгоритма . Отсюда следует, что время выполнения запроса диапазона равно , где k — количество точек в интервале запроса.

Запросы диапазона в d -размерах аналогичны. Вместо того, чтобы сообщать обо всех точках, хранящихся в поддеревьях путей поиска, выполните запрос ( d -1)-мерного диапазона для связанной структуры каждого поддерева. В конечном итоге будет выполнен запрос одномерного диапазона и будут получены правильные точки. Поскольку d -мерный запрос состоит из ( d -1)-мерных запросов, отсюда следует, что время, необходимое для выполнения запроса d -мерного диапазона, равно , где k — количество точек в интервале запроса. Это можно свести к используя вариант дробного каскадирования . [2] [4] [7]

См. также [ править ]

Ссылки [ править ]

  1. ^ Бентли, Дж.Л. (1979). «Разложимые задачи поиска» (PDF) . Письма об обработке информации . 8 (5): 244–251. дои : 10.1016/0020-0190(79)90117-0 . Архивировано из оригинала 24 сентября 2017 года.
  2. Перейти обратно: Перейти обратно: а б Люкер, Г.С. (1978). «Структура данных для запросов ортогонального диапазона». 19-й ежегодный симпозиум по основам информатики (SFC, 1978) . стр. 28–21. дои : 10.1109/SFCS.1978.1 . S2CID   14970942 .
  3. ^ Ли, DT; Вонг, СК (1980). «Четверичные деревья: файловая структура для многомерных систем баз данных». Транзакции ACM в системах баз данных . 5 (3): 339. дои : 10.1145/320613.320618 . S2CID   2547376 .
  4. Перейти обратно: Перейти обратно: а б Уиллард, Дэн Э. Алгоритм супер- b -дерева (технический отчет). Кембридж, Массачусетс: Компьютерная лаборатория Эйкена, Гарвардский университет. ТР-03-79.
  5. ^ Шазель, Бернар (1990). «Нижние границы для поиска в ортогональном диапазоне: I. Случай отчетности» (PDF) . Журнал АКМ . 37 (2): 200–212. дои : 10.1145/77600.77614 . S2CID   8895683 .
  6. ^ Шазель, Бернар (1990). «Нижние границы для поиска в ортогональном диапазоне: II. Арифметическая модель» (PDF) . Журнал АКМ . 37 : 439–463. дои : 10.1145/79147.79149 . S2CID   15935619 .
  7. Перейти обратно: Перейти обратно: а б де Берг, Марк; Чеонг, Отфрид; ван Кревелд, Марк; Овермарс, Марк (2008). Вычислительная геометрия . дои : 10.1007/978-3-540-77974-2 . ISBN  978-3-540-77973-5 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c70a2e8fe430ec951219296696d92f0b__1707227700
URL1:https://arc.ask3.ru/arc/aa/c7/0b/c70a2e8fe430ec951219296696d92f0b.html
Заголовок, (Title) документа по адресу, URL1:
Range tree - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)