Декартово дерево
-
Определение декартова дерева
- Декартово дерево — это двоичное дерево, построенное из последовательности различных чисел.
- Корень дерева имеет значение минимального числа в последовательности.
- Левое и правое поддеревья строятся рекурсивно из подпоследовательностей до и после минимального числа.
- Дерево обладает свойством минимальной кучи и симметричным обходом, возвращающим исходную последовательность.
-
История и применение
- Декартовы деревья введены Вуйлемином в 1980 году для структур данных поиска геометрического диапазона.
- Они используются в treap, рандомизированных структурах данных дерева бинарного поиска, алгоритмах сравнительной сортировки и сопоставления с образцом.
-
Эффективное построение
- Декартово дерево можно построить за линейное время на основе входной последовательности.
- Один из методов — обработка значений слева направо, сохраняя дерево обработанных узлов.
- Альтернативный алгоритм основан на поиске ближайших меньших значений.
- Другой алгоритм использует принцип «разделяй и властвуй».
-
Приложения
- Декартовы деревья используются для запросов с минимальным диапазоном и наименьших общих предков.
- Бендер и Фарах-Колтон предложили структуру данных для минимизации диапазона, которая также может использоваться для поиска наименьших общих предков.
- Декартовы деревья могут быть интерпретированы в терминах двумерного поиска дальности.
-
Декартово дерево и его применение
- Декартово дерево можно построить, отсортировав точки по x-координатам и используя y-координаты для формирования дерева.
- Наименьший общий предок двух точек в декартовом дереве — это самая нижняя точка на плите.
- Трехсторонний запрос диапазона можно выполнить, найдя самую нижнюю точку и рекурсивно продолжая поиск.
-
Расстояние в ультраметрике
- Расстояние между точками в ультраметрике можно найти, используя минимальное остовное дерево.
- Декартово дерево строится из минимального остовного дерева, где корневой узел представляет самое тяжелое ребро.
- Листья декартова дерева представляют точки метрического пространства, а наименьший общий предок — самое тяжелое ребро между точками.
-
Декартово дерево как бинарное дерево поиска
- Декартово дерево отсортированной последовательности — это график путей с корнем в крайней левой конечной точке.
- Бинарный поиск в декартовом дереве вырождается в последовательный поиск.
- Декартовы деревья могут использоваться для генерации двоичных деревьев поиска логарифмической глубины.
-
Treap и zip-дерево
- Treap — это самобалансирующееся бинарное дерево поиска, использующее случайные приоритеты.
- Zip-дерево использует ту же идею, но упрощает случайную генерацию приоритетов и выполняет вставки и удаления по-другому.
- Treap и zip-дерево имеют логарифмическую глубину и хорошо себя ведут в качестве деревьев поиска.
-
Сортировка с использованием декартовых деревьев
- Левкопулос и Петерссон предложили алгоритм сортировки, основанный на декартовых деревьях.
- Алгоритм поддерживает приоритетную очередь возможных минимумов и работает быстрее для почти отсортированных последовательностей.
- Наихудшее время работы алгоритма составляет O(n log k), где n — длина последовательности, а k — среднее значение по всем значениям.
-
Сопоставление с образцом
- Задача сопоставления с декартовым деревом — это поиск подстроки или подпоследовательности в строке, имеющей декартово дерево той же формы, что и заданный шаблон.
- Разработаны быстрые алгоритмы для вариаций задачи с использованием одного или нескольких шаблонов.
-
Стилизация цитат
- Цитирование с использованием шрифта наследования и переносом слов
- Использование котировок для цитат
- Настройка фонового цвета для цитат
-
Идентификаторы и блокировки
- Идентификаторы для различных типов блокировок: бесплатно, общество, регистрация, подписка
- Настройка ссылок на изображения для идентификаторов
-
Значки и цвета
- Значок для обозначения CS1 maint
- Настройка цвета и размера значка
- Настройка цвета для различных типов ошибок
-
Основные элементы
- Настройка цвета и маржи для различных элементов
- Настройка цвета и размера шрифта для различных медиа
-
Библиографическое описание
- Настройка шрифта для библиографического описания
- Настройка цвета для различных цветовых схем