Техника частичного каскадирования
Техника частичного каскадирования (англ. fractional cascading technique) — это способ организации структуры данных, который предназначен для быстрого итеративного поиска в
каталогах.
Задача: |
Дано | каталогов , каталог представляет собой упорядоченный массив размера . Поступают запросы, которые представляют собой один элемент . Требуется для каждого запроса определить в каждом каталоге максимальный элемент меньше либо равный .
Различные подходы к решению
Пусть
1) Пусть пришел запрос . Пробежимся по всем каталогам. Пусть мы находимся в -ом каталоге, тогда мы можем ответить на запрос для данного каталога за используя бинарный поиск. Так как каталогов штук, то в итоге мы обработаем запрос за . Для хранения всех каталогов понадобится памяти.
2) Для второго способа построим сбалансированное бинарное дерево поиска их всех элементов всех каталогов. В каждой вершине дерева будет хранится дополнительно кортеж из элементов - максимальных представителей каталогов меньше либо равных ключу вершины. Таким образом такая структура будет занимать на дерево поиска и на дополнительные кортежи.Тогда для ответа на запрос найдем в дереве поиска максимальный ключ меньше либо равный и выведем элементов соответствующего кортежа, итого ответ на запрос производится за .
Итого имеем
Тип подхода к решению | Необходимая память | Время ответа на один запрос |
---|---|---|
|
|
|
|
|
|