Главная » Просмотр файлов » Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)

Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (1119371), страница 33

Файл №1119371 Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)) 33 страницаД. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2) (1119371) страница 332019-05-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Заметим, что страницы, которые могут понадобиться для разделе. ния при вставке, автоматически присутствуют в памяти в силу обращения к ним во время предыдущего поиск». Эксперименты Э. Мак-Крейта (Е. МсСге18Ьг) показали, что такая политика работы вполне успешна. Например, им было найдено, что при 10 буферах и гп = 121 процесс вставки 100000 ключей в порядке возрастания требует пхчько 22 действительных чтений и тоаько 857 реальных команд записи. Таким образом, ббльшая часть действий выполнялась во внутренней памяти.

Далее, полученное дерево содержало всего 835 узлов, лишь на один узел больше, чем минимально возможное значение ~100000/(гп — 1)~ = 834; следовательно, память была использована практически на 100%. В этом эксперименте применялась технология переливания, но с разделением на две части согласно (4), а не на три, как в (10) (см. упр. 3). В другом эксперименте, также с десятью буферами, гп = 121 и использованной технологией переливания, Э. Мак-Крейт вставил о000 ключей в первоначально пустое дерево в случайном порядке. При этом было получено двухуровневое дерево с 48 узлами (утилизация памяти составила 87%) после выполнения 2 762 реальных чтений и 2 739 реальных записей.

Затем для 1000 случайных поисков потребовалось 786 реальных чтений. В результате того же эксперимента без применения переливания было построено двухуровневое дерево с 62 узлами (утилизация памяти— 67%) после выполнения 2743 реальных чтений и 2800 реальных записей. Далее для 1000 случайных поисков потребовалось 836 реальных чтений.

Это показывает не только эффективность страничной схемы, но и преимушества, полученные от использования технологии перыивания. Эндрю Яо (Апг(геп Као) доказал, что среднее количество узлов после случайных вставок без переливания для больших Ф и гп равно Х/(т 1п 2) + 0(Х/гп~), так что утилизация памяти будет составлять примерно 1п 2 = 69.3% [АсГа 1п/оггпаВса 9 (1978), 159-170).

Более детальный анализ можно найти в работах В. Е1вепЬаггЬ, 35 2Маш, О. Н. Ооппет, К. МеЫЬогп, ап<1 П. Жопа, 1п/огшагюп апс( Соп1го) 55 (1982), 125 — 174; В., А. Ваези- загсе, АсГа 1пуогша11са 26 (1989), 439-471. В-деревья со времен своего изобретения стали чрезвычайно популярны. Обратитесь, например, к статье Дугласа Комера (Попй!аз Сошег) в Сошригшй Япггеув 11 (1979), 121-138, 412, в которой обсуждаются ранние разработки и описывается широко используемая система ЧБАм (К(ггпа1 Бгогабе Ассезв МегЬоб — метод доступа к виртуальной памяти), созданная в 1ВМ Согрогагюп. Одним из новшеств КБАМ была репликация блоков дисковых цилиндров с целью минимизации времени обращения.

Две из наиболее интересных разработок основ стратегии В-деревьев получили одинаковые имена: "5В-деревья" и "БВ-деревья': ЯВ-дерево П. 1О. О'Нейла (Р. Е. О'Хе(1) ]Асса Хпб 29 (1992), 241-265] создано для минимизации времени выполнения дисковых операций путем расположения соседних записей в одном цилиндре; тем самым поддерживается высокая эффективность рабаты приложений, в которых требуется одновременный доступ к множеству последовательных записей (в этом случае кВВ" выделяется курсивом и В означает "весгпепг(а)" — "последовательныйе). БВ-дерево (см. Р. Геггаб(па апс( В.. Огошс, АТОС 27 (1995), 693-702; ВОВА 7 (1996), 373-382) представляет собой элегантную комбинацию структуры В-дерева с деревьями "Патриция", о которых пойдет речь в разделе 6.3; в этом случае "БВ" записывается обычным шрифтом и Б означает "вгПп8" — "строка". Такие деревья используются во многих приложениях для крупномасштабной обработки текстов и обеспечивают эффективную сортировку строк переменной длины на диске ]Агбе, Гегга81па, Оговв1, апс1 Ъ йгег, ВТОС 29 (1997)„540-548].

УПРАЖНЕНИЯ 1. [10] Какое В-дерево парадна 7 получится после вставки ключа 613 в дерево, показанное на рнс. 30 (технология переливания не используется)? 2. (М) Выполните упр. 1, используя технологию переливания с разделением на три части, как в (10). 3. ]33] Предположим, что ключи 1, 2, 3,, в порядке возрастания всшаляются в изначально пустое В-дерева порядка 101, Какой ключ приведет к появлению листьев на уровне 4: а) без использования переливания; Ь) при использовании переливания с разделением только на 2 части, как в (4); с) при использовании В -дерева порядка 101 с переливанием н разделением на 3 части, в (10)? 4, ]21] (Байер (Вауег) и Мак-Крейт(МсСгесб)гс),) Объясните, как выполнить вставки в обобщенное В-дерево так, чтобы все узлы, кроме корня н листьев, имели не менее вас — с потомков.

б. (в1] Предположим, чта для узлов отведено по 1000 снмвсиов во внешней памяти. Если каждый указатель занимает 5 символов и если ключ имеет длину, кратную пяти н находащуюос в пределах от 5 до 50 символов, та каково минимальное количество символов, занятых в узле после его разделения в процессе вставки? (Рассмотрите только простую процедуру разделения, аналогичную описанной в тексте для В-дерева с ключам фиксированной длины без переливания; рассмотрите перемещение вверх ключа, который делает оставшиеся части наиболее близкими па размеру.) 6. ]вУ] Разработайте алгоритм удаления нз В-деревьев. 7. (йв] Разработайте алгоритм конкатенации В-деревьев (см.

раздел 6.3.3). 8. ]ЛМ37] Рассмотрим обобщение вставки в дерево, предложенное Мюнцем (Мапгв) н Узсвлисом (1)вбайв), в котором каждая страница может содержать М ключей. Пусть в дерево вашвлено Ю случайных элементов, так что оно имеет ?сс+ 1 внешний узел. Обозначим через Ь вероятность тога, что при неудачном поиске потребуется Ь обращений к сс) страницам и чго он закончится в узле, родительский узел которога принадлеясит странице, содержащей з ключей. Пусть Всс (в) = 2 Ьлав — соответствующая производящая 6~ Ссп функц .

До, чт Вч1(х) = 4 ~х и В,„г()= Вя',(х)+ — В4, () 1</СИ; 01 М вЂ” у — 1 ш у'+1 О и й'+1 -' Л +1 Найдите асимптотическое поведение Ся ы Я., В (1) — среднего числа страниц, к которым осуществляется обращение при неудачном поиске. (Указание. Выразите рекуррентное соотношение с помощью матрицы -з о 0 2х о о а о Э -4 0 4 ()хх о а ... -и-1 о о а ... и+1 -г Мало известно, даже при использовании иных эквивалентных алгоритмов, об оптимизации выделения памяти, м«нимизэцик количества необходимых операций и т, п. эта область исследований долж«э черпать песу Рсы длл дальнейшего пРогресса «ак из чистой., тэк и из приклад«ой математ«кх.

— ЭНТОНИ Г. ЙТТИНГЕР (АНТНОЫУ Е. ОЕТТ!ЫЕЕй) (1961) и сопоставьте Сь с многочленом )ч'-й степени в И'(1)), 9. (йй) Может ли идея В-деревьев использоваться для получения элементов линейного списка по позиции, а не по значению ключа (см. алгоритм 6,2,3В)2 ь 10. (Уб] Обдумайте, каким образом большой файл, организованный в виде В-дерева, можно использовать для доступа и изменения со стороны большого числа одновремен- но работающих пользователей, чтобы пользователи различных страниц практически не мешали друг пруту. б,З. ЦИФРОВОЙ ПОИСК Вместо методов поиска, основанных иа сравиеиии ключей, можно воспользоваться представлением ключей в виде последовательиости цифр или букв. Рассмотрим, например, "побуквенные меткие в больших словарях (или записных адресных книжках), которые позволяют мгновенно иайти страницы со словами, яачииающимися с определенной буквы*. Развивая идею побуквеииых меток до ее логического завершения, можно получить схему поиска, осиоваииую иа повторяемом индексировании, которое проилдюстрироваио в табл.

1. Предположим„что необходимо проверить, является ли данный аргумент поиска одним из 31 наиболее употребительного английского слова (см. рис. 12 и 13 в разделе 6.2.2). Данные представлены в табл. 1 в виде сгпррктрры луча**. Дуч, по сути, — зто М-ариое дерево, узлы которого представляют М-местные векторы с компонентами, соответствующими цифрам или буквам. Каждый узел уровня 1 является иабором всех нлючей, иачииаиицихся с определенной последовательности ! символов, которая называется его префиксом (рте)гк); узел определяет разветвлеиие иа М путей в зависимости от ! + 1 символа.

Например, луч из табл. 1 содержит 12 узлов; узел (1) представляет собой корень, в котором мы ищем первую букву. Вали первой буквой является, скажем, И, из таблицы следует, что либо зто слово ИОТ, лкбо такого слова вообще иет в таблице. В то же время, если первая буква — И, то узел (1) отправит яас к узлу (9) для поиска второй буквы тем же способом, Узел (9) указывает, что вторая буква должиа быть А, Н или 1. Префикс узла (10) — НА.

Пустые записи в таблице означают отсутствие связей. Узлы-векторы в табл. 1 расположены в соответствии с кодами символов И11. Это означает, что елучевой поиск" будет весьма быстрым, поскольку следует просто выбирать слова из массивов с использованием символов наших ключей в качестве ицдексов. Техиологии быстрого миогопутевого принятия решения по индексу называются просмотром таблицы (саЫе!оо)с-ас) в отличие от поиска по таблице (саЫе !оо1с-цр) (см, Р.

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

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

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