Применение Б-деревьев особенно полезно при создании приложений, пред-
назначенных для работы с базами данных. При большом порядке Б-дерева вы смо-
жете найти любой элемент после рассмотрения всего нескольких узлов. Напри-
мер, Б-дерево 10-го порядка, содержащее миллион записей, может быть глубиной
максимум log11(l 000 000), или приблизительно шесть уровней. Для нахождения
конкретного элемента вам необходимо исследовать максимум шесть узлов.
Сбалансированное двоичное дерево, содержащее тот же самый миллион эле-
ментов, имело бы глубину Iog2(l 000 000), или приблизительно 20. Однако эти
узлы содержат всего одно ключевое значение. Чтобы найти элемент в двоичном
дереве, вы исследовали бы 20 узлов и 20 значений. Чтобы найти элемент в Б-де-
реве, понадобится проверить 5 узлов и 100 ключей.
Применение Б-деревьев обеспечивает более высокую скорость работы, по-
скольку проверку ключей выполнить проще, чем проверку узлов. Например, если
база данных сохранена на жестком диске, считывание данных происходит доста-
точно медленно. Если данные находятся в памяти, их исследование выполняется
значительно быстрее.
Чтение данных с диска происходит большими блоками, и считывание цело-
го блока занимает столько же времени, сколько и чтение одного байта. Если узлы
Б-дерева не слишком велики, то считывание узла Б-дерева с диска займет не больше
времени, чем считывание узла двоичного дерева. В этом случае поиск 5 узлов в Б-
дереве будет требовать 5 медленных обращений к диску плюс порядка 100 быстрых
обращений к оперативной памяти. Поиск 20 узлов в двоичном дереве будет требо-
вать 20 медленных обращений к диску плюс 20 обращений к оперативной памяти.
Двоичный поиск медленнее, потому что время, потраченное на 15 обращений к дис-
ку, намного больше, чем сэкономленное время 80 обращений к памяти.
Опубликовал Kest
October 29 2009 09:58:35 ·
0 Комментариев ·
6134 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.