Изменения

Перейти к: навигация, поиск

Сжатое многомерное дерево отрезков

196 байт добавлено, 19:07, 4 сентября 2022
м
rollbackEdits.php mass rollback
==Оптимизация==
Для уменьшения количества занимаемой памяти можно провести оптимизацию <tex>p</tex>-мерного дерева отрезков. Для начала, будем использовать дерево отрезков с сохранением всего подотрезка в каждой вершине. Другими словами, в каждой вершине дерева отрезков мы будем хранить не только какую-то сжатую информацию об этом подотрезке, но и все элементы множества <tex>A</tex>, лежащие в этом подотрезке. На первый взгляд, это только увеличит объем структуры, но не все так просто. При построении будем действовать следующим образом — каждый раз дерево отрезков внутри вершины будем строить не по всем элементам множества <tex>A</tex>, а только по сохраненному в этой вершине подотрезку. Действительно, незачем строить дерево по всем элементам, когда элементы вне подотрезка уже были «исключены» и заведомо лежат вне желаемого <tex>p</tex>-мерного прямоугольника. Такое «усеченное» многомерное дерево отрезков называется '''сжатым'''(англ. ''compressed'').
==Построение дерева==
Рассмотрим алгоритм построения сжатого дерева отрезков на следующем примеремножества <tex>A</tex>, состоящего из <tex>4</tex>-х взвешенных точек в <tex>2</tex>-мерном пространстве (плоскости):<br>
<tex>
p=2, ~~n=4,~~A:
\begin{cases}
(1, 3), \mbox{weight}=7 \\
1632
правки

Навигация