Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Б-ДЕРЕВЬЯ. ОПЕРАЦИИ, СЛОЖНОСТЬ.




 

Б-деревья - сбалансированные сильно ветвящиеся деревья, удобные для хранения информации на дисках. Характерным для Б-деревьев является их малая высота h. Представление информации во внешней памяти в виде Б-дерева стало стандартным способом в системах баз данных.

В Б-дереве узел может иметь много сыновей, на практике до тысячи. Количество сыновей (максимальное) определяет степень Б-дерева.

Если задана некоторая верхняя граница числа потомков, то модно представить их как компоненты некоторого массива в записи, представляющей любую вершину. Если число потомков у разных вершин варьируется, то такое представление может привести к плохому использованию доступной памяти. В этом случае проще представлять потомков в виде линейного списка со ссылками от предка на самого младшего или старшего потомка (но операции в этом случае буду сложнее).

Применение сильно ветвящихся деревьев - поиск в больших объемах данных, которые не помещаются в оперативную память.

Б-деревья делят на страницы. Мы получаем структуры, которые помещаются в одно окно, тогда поиск идет не вниз, а вширь – вероятность найти объект выше.

Б-дерево порядка n обладает следующими свойствами:

· Каждая страница содержит не более 2n элементов.

· Каждая страница, кроме корневой, содержит не менее nэлементов.

· Каждая страница представляет собой либо лист (не имеет потомков), либо имеет m+1 потомков, где m-число ключей на данной странице.

· Все страницы-листья находятся на одном уровне

Стр 1
Б-дереьвья порядка 2:

m = 3,

(m+1) ключей

       
   
 


Операции:

Поиск ключа: Читаем первую страницу, ищем ключ, если не находим, то переходим по ссылке между 2 наиболее близкими к искомому ключами.

Например: ищем 15 – переходим по ссылке межу 10 и 20 и т.д.

Вставка: сначала с помощью поиска находим место. Если на станице m<2n, то вставляем. Иначе создаем новую страницу-соседа, распределяем 2n ключей между ними, но 1 ключ (по значению средний) уходит наверх на родительскую страницу.

Удаление: Если m>n, то удаляем. Иначе берем элементы с соседней страницы (если не хватает, сливаем 2 страницы вместе).

 

Для дерева из N элементов для выполнения операций потребуется не более k=lognNрекурсивных вызовов (обращений к страницам), коэффициент использования памяти = 50%, т. к. страницы всегда заполнены минимум на половину

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных