Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 115

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 115 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 1152019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 115)

Информация разделяется на несколько слгралил (райеб) одинаювого размера, которые хранятся последовательно одна за другой в пределах одной дорожки, и каждая операция чтения или записи работает с одной или несколькими страницами. Для типичного диска размер страницы может составлять 2г1-2г4 байт. После того как головка позиционируется на нужную дорожку, а диск поворачивается так, что головка становится на начало интересующей нас страницы, операции чтения и записи выполняются очень быстро. Зачастую обработка прочитанной информации длится меньше времени, чем ее поиск и чтение с диска. По этой причине в данной главе мы отдельно рассматриваем два компонента времени работы алгоритма: количество обращений к диску; время вычислений (процессорное время).

Количество обращений к диску измеряется в количествах страниц информации, юторое должно быть считано с диска или записано на него. Заметим, что время обращения к диску не является постоянной величиной, поскольку зависит от расстояния между текущей дорожкой и дорожкой с интересующей нас информацией, а также от текущего угла поворота диска.

Мы будем игнорировать это обстоятельство и в качестве первого приближения времени, необходимого для 'На момент написаниа «инги на потребительским рынок стали акгиано выходить таердогельные ншюпнтели. Хстл они и быстрее дисюных, они отличаниел более аысокой стоимостью а пересчете на гигабайт н меньшей емносгью, чем традипионные магнитные диски. Часть К Слалсиые структуры даииык обращения к диску, будем использовать просто количество считываемых или записываемых страниц.

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

Если же объект, к которому мы обращаемся посредством х, находится на диске, то мы должны выполнить операцию Р1$к-кеАц(х) для чтения объекта х в оперативную память перед тем, как будем обращаться к его полям. (Считаем, что если объект х уже находится в оперативной памяти, то операция Р1ЕК-КЕАгэ(х) не требует обращения к диску.) Аналогично для сохранения любых изменений в полях объекта х выполняется операция Р1зк-%к1те(х). Таким образом, типичный шаблон работы с объектом х имеет следующий вид.

х = а ро)пгег го зогпе оЬ)есг Р1ЕК-КЕАЮ(Х) Операции, обращающиеся к атрибутам х и!илн изменяющие их 01зк-%к1те(х) // Не выполняется, если никакие // атрибуты х не были изменены Прочие операции, обращающиеся к атрибутам х, но не изменяющие их Система в состоянии поддерживать в процессе работы в оперативной памяти толью некоторое ограниченное количество страниц. Мы будем считать, что страницы, которые более не используются, удаляются из оперативной памяти системой; наши алгоритмы работы с В-деревьями не будут заниматься этим самостоятельно. Поскольку в большинстве систем время выполнения алгоритма, работающего с В-деревьями, зависит, в первую очередь, от количества выполняемых операций с диском Р1ЕК-КЕАП и Р1ЗК-%К1тЕ, желательно минимизировать их количество и за один раз считывать и записывать как можно больше информации.

Таким образом, размер узла В-дерева обычно соответствует дисковой странице. Количество потомков узла В-дерева, таким образом, ограничивается размером дисковой страницы. Для больших В-деревьев, хранящихся на диске, степень ветвления обычно находится между 50 и 2000, в зависимости от размера ключа относительно размера страницы.

Большая степень ветвления резко снижает как высоту дерева, 525 Глава йй Л-деревьв Т. пюг 1 узел, 1000 й 1001 узел, 1001000 ключей 1002001 узел, 1 002001 000 ключей Рис. 1йЗ. В-дерево высотой 2, содерлщщсе более миллиарда ключей. В кюкдом узле к показан атрибут х. н, количество ключей в х. Кюкдый внутренний узел и лист содержат 1000 ключей. Данное В-дерево имеет 1001 узел иа глубине ! и более миллиона листьев на глубине 2. так и количеспю обращений к диску для поиска ключа. На рис. 18.3 показано В-дерево, высота которого равна 2, а степень ветвления — 1001; такое дерево может хранить более миллиарда ключей. При зтом, поскольку корневой узел может храниться в оперативной памяти постоянно, для поиска ключа в зтом дереве требуется максимум два обращения к диску.

18.1. Определение В-деревьев Для простоты предположим, как и в случае бинарных деревьев поиска и красно-черных деревьев, что сопутствующая информация, связанная с ключом, хранится в узле вместе с юиочом. На практике вместе с ключом может храниться только указатель на другую дисковую страницу, содержащую сопутствующую информацию для данного ключа. Псевдокод в данной главе неявно подразумевает, что при перемещении ключа от одного узла к другому вместе с ним перемещается и сопутствующая информация или указатель на нее.

В распространенном варианте В-дерева, который называется В+-деревом, вся сопутствующая информация хранится в листьях, а во внутренних узлах хранятся только ключи и указатели на дочерние узлы. Таким образом, удается получить максимально возможную степень ветвления во внутренних узлах. В-дерево Т представляет собой корневое дерево (корень которого Т. гоо1), обладающее следующими свойствами. 1. Каждый узел х содержит следующие атрибуты: а) х. и, количество ключей„хранящихся в настояпщй момент в узле х; б) собственно х. п ключей, х.

)се1г„х. Мерз,..., х. кеу „, хранящихся в неубывающем порядке, так что х. кеу! < х. не!12 « х. кер в) булево значение х.1еаУ, равное ткиб, если х представляет собой лист, и ря!.БЕ, если х является внутренним узлом. Часта и Сложные структуры данказт 526 2. Кроме того, каждый внутренний узел х содержит х, и+1 указателей х.см х. сз, ..., х.с „ез на дочерние узлы. У листьев дочерних узлов нет, так что значения их атрибутов с, не определены. 3.

Ключи х, зсеу, разделяют поддиапазоны ключей, хранящихся в поддеревьях: если Йй является произвольным ключом, хранящимся в поддереве с корнем х.с„ то 5су ( х.йеуз ( )сз ( х.1сеуз ( .. ( х.йеу, „ ( (с~ „.ез 4. Все листья расположены на одной и той же глубине, которая равна высоте дерева 5з. 5. Имеются нижняя и верхняя границы количества ключей, которые могут содержаться в узле.

Эти границы могут быть выражены с помощью одного фиксированного целого числа с > 2, называемого минимальной степенью (пппппшп дейтее) В-дерева: а) каждый узел, кроме корневого, должен содержать как минимум г — 1 ключей, Каждый внутренний узел, не являющийся корневым, имеет, таким образом, как минимум с дочерних узлов. Если дерево не является пустым, корень должен содержать как минимум один ключ; б) каждый узел содержит не более 2г — 1 ключей.

Таким образом, внутренний узел имеет не более 2г дочерних узлов. Мы говорим, что узел заполнен (йуН), если он содержит ровно 2г — 1 ключейз. Простейшее В-дерево получается при г = 2. При этом каждый внутренний узел может иметь 2, 3 или 4 дочерних узла, и мы получаем так называемое 2-3-4- дереео (2-3-4 пес).

Однако обычно на практике используются гораздо большие значения 1. Высота В-дерева Количество обращений к диску, необходимое для выполнения большинства операций с В-деревом, пропорционально его высоте. Проанализируем высоту В-дерева в наихудшем случае. Теорема 1й.1 Если и > 1, то для любого В-дерева Т с и ключами, высотой Ь и минимальной степенью г > 2 и+1 тз ( 1обз 2 злрутой распространенный вариант В-дерева под названием В -дерпт требует, чтобы каждый внутренний узел быа заповнен как минимум на две трети, а не напоковину, как в евучае В-дерева.

Глава ГД В-деревьв Г. плл ~1 ~ачаСс, аЪ'. ~'1'-:1.,;! ....з-.1 ~ Н~„'"",У~' У~:(зЯ~ (азз)М "'З;т1,~... '~;-З ~ Гззз'.1 'З;-,. 1„,* (1-,1;! (Ф ~-"; ('~,.''-;,1'", "(Л; —:'1 ~ Глубнна Коанчсссю узлов о Рнс. 18.4. Н-дерево высотой 1, содерлсплее мнннмально аозмоююе количество ключей. В кюкдом узле х показано значенне х.п. и > 1+ (1 1) ~у у211-1 = 1+ 2(Ф вЂ” 1) = 2с~ — 1 Простейшее преобразование дает нам неравенспю 1ь ( (и + 1)(2. Теорема дока- зывается путем логарифмирования по основанию 1 обеих частей зтого неравен- ства. Здесь мы видим преимущества В-деревьев над красно-черными деревьями. Хотя высота деревьев растет как 0()8 и) в обоих случаях (вспомним, что 1 — константа), в случае В-деревьев основание логарифмов имеет гораздо большее значение. Таким обраюм, В-деревья требуют исследования примерно в 181 раз меньшего количества узлов по сравнению с красно-черными деревьями.

Поскольку исследование узла дерева обычно требует обращения к диску, количество дисковых операций при работе с В-деревьями оказывается существенно сниженным. Упражнения 1е.1.1 Почему минимальная степень В-дерева не может быть Ф = 12 Доклзалзельслзва Корень В-дерева Т содержит как минимум один ключ, а все остальные узлы — как минимум по Ф вЂ” 1 ключей. Таким образом, у В-дерева Т, глубина которого равна Ь, имеется как минимум 2 узла на глубине 1, как минимум 21 узлов на глубине 2, как минимум 2сз узлов на глубине 3 и так до глубины 6, на юзторой имеется как минимум 21Ь ' узлов (пример такого дерева, высота мзторого равна 3, показан на рис.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6556
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее