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

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

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

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

Ташап, Х СошЬ(пагойа) ТЛеогу 2 (1967), 215-242, 4 (1968), 201; С. Сгеепе, Еигор. з. СошЬшаголсз 9 (1988). 225-240; 1), 1). 31еасог, В. Е. Тщ)ап, апб %. Р. ТЬптя(оп, Х Ашег. Ма(Л. Яос. 1 (1988), 647-681; 3. М. Райо„ТЬеогейса) 1пйгшаг)сз апс( Арр!(с. 27 (1993), 341-348; ЬЬ К. Веппеш апд О. В1гИЬоЯ„А)бебга Упгкегяайв 32 (1994), 115-144; Р. Н, Еде!глап апг) 'ъг. Вынет, МасЛщпаййа 43 (1996), 127-154. 33. Во-первых, можно свести объем памяти к одному биту А(Р) в каждом узле Р, такому, что В(Р) = А(ВЬ1ВК(Р)) — А(ЬЫМК(Р)), когда ШИК(Р) и ВИКК(Р) ненулевые; в противном случае В(Р) уже известно. Во-вторых, можно положить.

что А(Р) = О, когда 1Л.1МК(Р) и ВЬ1ИК(Р) нулевые. Тогда А(Р) может быть удален во всех др)тих узлах после обмена ЬЬ1ИК(Р) с ВЬ1МК(Р) при А(Р) = 1; сравнением КЕУ(Р) с КЕУ(ЫЬ1ЫК(Р)) нли КЕТ(ВХ,1ИК(Р)) определяется А (Р) . Естественно, на машинах, указатели которых всегда четны, каждый узел имеет два неиспользуемых бита. Чтобы получить дополнительную зкономию памяти, следует поступить, как в упр. 2.3,1-37. РАЗДЕЛ б.2.6 1. Разделяются два узла: 2. Измененные узлы: (Конечно, В'-дерево могло бы и не яметь узлов с тремя ключами, хотя на рис.

30 они показаны.) 3. (а) 1+ 2 50+ 2 51 50+ 2 51 51 50 = 2 51 — 1 = 265301. (Ъ) 1+2 50+(2 51 100 — 100)+((2 51 101 — 100) 100 — 100) = 101 = 1030301, (с) 1+2 66+(2.67 66+2)+(2 67 67 66+2.67) =601661. (Ыеныпе, чем(Ь)!) 4. Перед разделением некорневого узла убедитесь, что он имеет два заполненных соседа. Затем разделите зти три узла на четыре. Корень должен разделяться только тогда, когда в нем содержится больше 3 1(3ш — 3)/4) ключей. 5.

Интерпретация 1, попытка максимизировать сформулированную задачу дает 450. (Наихудшая ситуация возникает при наличии 1 005 символов и передаваемого родительскому узлу ключа длиной 50: 445 символов + указатель + 50-символьный ключ + указатель + 50-символьный ключ + указатель + 445 символов.) Интерпретация 2, попытка уравнять количество ключей после разделения для поддержания высокого ветвления: 155 (15 коротких ключей, за которыми следуют 16 длинных). См. Е. М.

уйсСгелбЫ, САСМ 20 (1977), 670-674. 6. Если удаляемый ключ находится не на уровне 1-1, замените его ключом-наследником и удалите последний. Для удаления ключа на уровне 1 — 1 достаточно просто стереть его; если при этом узел окажетск слишком пустым, обратитесь к его правому (или левому) соседу и выполните "вливание", т. е. переместите ключи в узел из соседа таким образом, чтобы в обоих узлах содержалось примерно одинаковое количество данных.

Такая операция невозможна только при малой заполненности соседа; в этом же случае можно обьединить два узла в один (вместе с одним ключом из родительского узла). Такое объединение можец в свою очередь, вызвать необходимость вливании иа уровне родительского узла и т. д. При наличии ключей переменной длины, как в упр. 5, может потребоваться разделение родительского узла (когда один из его ключей становится длиннее). 8.

Имея дерево Т с уг' внутренними узлами, обозначим через вью внешние узлы, тре- О) бующие й обращений, родительские узлы козорых относятся к страницам, содержащим У ключей. Пусть также А(')(в) является соответствующей производящей функцией Тогда А(')(1) + . + А(м)(1) = Х+ 1. (Заметим, что аь кратно ) + 1 при 1 < у < М.) Следующая случайная вставка приводит к появлению Я+ 1 равновероятного дерева, производящие (11 функции которых получаются путем уменьшения некоторых коэффициентов а(' на /+ 1 и прибавления )+2 к а(' (или, если,) ш М, уменыпения некоторых а( на 1 н прибавления 0+1) (м) 2 к а +,). Теперь В„, (з) равно (Я+ 1) ', умноженному на сумму производящих функций (1) 0) А(э)(з) для 7, умноженных на вероятность появления Т по всем деревьям 7'.

Отсюда следуют такие сформулированные рекуррентные соотношения: (В'."( ),",В' )( ))'= ( + ( + ) '~ ( ))(В(",( ),"-,В,'"',( ))" = ди(И (в))(0,...,О, 1)г, где Значит, Сл ш (1,...,1)(Вл() (1),...,Вь~. ) (1)) м 2В~л,(1)/(Дг+1) +Си ( = 2/н(Иг)мм, где /„(к) = д„1(я)/(и+1)+ +де(х)/2 = (дв(х)-1)/я и И' = И'(1). (Индекс ММ означает нижний левый угол матрицы.) Теперь И' = Я ) (йвб (Лм, Лм) Я для некоторой матрицы Я, где сйвб (Л),..., Лм) обозначает диагональную матрицу, элементами которой являются корни полинома )((Л) = (Л + 2)...

(Л+ М + 1) — (М + 1)!. (Все корни различны, поскольку ~(Л) = Л (Л) = 0 приводит к 1/(Л+2)+ - - + 1/(Л+М+1) = 0; это может выполняться только тогда, когда Л действительно и -М-1 < Л < -2, откуда вытекает что )Л+2!... )Л+М+1) < (М + Ц1, а зто противоречит начальному условию.) Если р(в) — некоторый полипом„ то р(И ) = р(я ~ ц(аб(Лм...,Лм)о) = 3 (бсаб(р(Лс),...,Р(Лм))я; следовательно, правый нижияйзлементр(И~)имеетвидсср(Лс)+ .+сыр(Лм),гденекоторыеконстантысс,...,см ие зависят от р.

Эти константы можно вычислить, положив р(Л) = А(Л)/(Л вЂ” Л„), так как (Иь) мм = ( — 2)ь при 0 < й < М-1, имеем р(И ) мы = р( — 2) ж (М+1)!/(Лз+2) = с р(Л1) = с А'(Лс) =с,(М+1)1(1/(Л +2)+ +1/(Л +М+1)). Значит,с =(Аз+2) '(1/(Лз+2)+ .+1/(Аз+ М+1)) '. Это дает точную" формулу Сь ~ 2™, 2с;/л(Л,); остается только исгледовать корни Лр Заметим, что )Лз + М + Ц < М + 1 для всех у, иначе мы бы имели )Л1 + 2)... )Л„+ М + Ц > (М + 1)!. Взив Лс = О, убеждаемсЯ, что 4?(Л,) < О дли 2 < 2 < М.

Согласно 1,2.5-(15) у„(х) (и+ 1)*/Г(я+ 2) при и -1 оо; следовательно, 9„(Л1) -+ О для 2 < у < М. Таким образом, Су' - -2сс/л(0) + О(1) = Нл/(Нмтс — 1) + О(1). Примечание. Приведенный анализ применим также к алгоритму простой сортировки, вкратце обсуждавшемуся в разделе 5.2.2. Вычисления могут быть легко дополнены для того, чтобы показать, что ВЦ1(1) (Нм+, — 1) '/(у+ 2) при 1 < / < Ми Вь (1) (Нмас -1) '/2.

Поэтому общее количество внутренних узлов в незаполненных страницах приблизительно равно ( ° .'. ) 3 х 2 4 х 3 (М+1) х М/Ни+с — 1 1 (М+1)(Нм+с — 1)l а общее количество использованных страниц примерно равно 1 1 1 1 Ж 1'т' — + — + + + 3 х 2 4 х 3 (М+ 1) х М М+ 1) Ни+с — 1 2(Нм+с — 1) откуда слесбчт, что асимптотическое использование памяти равно 2(Нмм — 1)/М Этот анализ был развит в работе Махмуда (МаЬшопг() и Питтеля (Рсссе!) [Х А?бог 2Ьпщ 10 (1989), 52-75), которые открыли, что дисперсия количества использованной памяти подвергается неожиданному фазовому переходу; при М < 25 дисперсия равна В(Х), ио при М > 26 оиа асимптотически равна /(Ж) )т'+~", где /(е "~~Я) = /(Н), если — -„+ а+ >31 и — 1 + а —;31 являются ненулевыми кориямя Л, с наибольшей действительной частью. Высота таких деревьев проанализирована в работах 1. Ветгоуе, Валгсош Ясгпсспгев влс( А!бощзйшз 1 (1990), 191-203, и В.

РИСе1, Влас?ош Бсгвсгшев апс1 А1богйАлж 5 (1994), 337-347. 9. Да; например, мы могли бы заменить каждое К, в (1) иа 1 плюс число ключей в поддеревьях Ро,..., Р; ь Соответствующим образом изменяются алгоритмы поиска, вставки и удаления. 10. Краткий набросок: расширим страничную схему так, чтобы исключительный доступ к буферам предоставлялся только одному пользователю одгювремеиио. Алгоритмы поиска, вставки и удаления должны быть тщательно модифицированы, чтобы такой исключительный доступ предоставлялся талько иа ограниченное время, только при крайней необходимости и таким образом, чтобы не возникало клинчей.

За подробностями обратитесь к работам В. Заспаб(, 1пб Ргос, бессесз 5 (1976), 107-112; В. Вауег апд М. БсЬЬо!п(сЬ, Асса 1пб 9 (1977), 1-21; с'. Забст, Х Ссвпр. Яувс. 5Ы 33 (1986), 275-296. РАЗДЕЛ 6.3 1. Отблески. (Па самом деле перед нами непереводимая игра слов, основанная иа близости слов С ее и СПе. В связи с зтим ниже приводится текст оригинала упражнения и ответа к нему, — Прим.

перев. Н а сгее Ьез 1еатев, мЬас боев а спе Ьате? 1летев (сЬе р)пга) о( "11еГ).) 2. Выполпнтг элгор»тм Т, яспользуя в качестве аргумента новый ключ; попок закончится неудачно на шаге ТЗ илн Т4. Если последний шаг — ТЗ, просто поместите К в элемент таблицы ЖВЕ(Р) с номером Ь н завершите работу алгоритма. В противном случае поместите в зту позицию адрес нового узла Я ~- ИЧИ1., содержащего пустые ссылки, а затем установите Р е- Ц.

Теперь присвойте Ь н Ь' соответственно следующие символы К н Х: если Ь Р Ь', сохраните К в позиции й узла 9003(Р), в Х вЂ” в позиции Ь'; однако, есля Ь = Ь', поместите в позицию Ь указатель на новый узел Я с ЗЧШ и присвойте Р е — Ц.

Повторяйте этот процесс до тех пор, кока не получится Ь ф Ь' (счнтается, что ни один нз ключей не служит началом другому). 3. Заменим ключ пустой ссылкой в том узле, в котором он находился. Если теперь данный узел стал "бесполезным" в силу того, что все его элементы, кроме одного, представляющего ключ Х, пусты, удалим этот узел н заменим соответствующий указатель в родительском узле указателем Х Еслн "бесполезным" становится родительский узел, удалим его описанным способом, 4.

Успешный поиск будет проходить так же, как и в случае несжатой таблицы, однако для неудачного поиска в сжатой таблице может потребоваться несколько дополнительных итераций. Например, такой аргумент поиска, как ТЗЗЗЗ, заставят программу произвести пмстяь итераций (что явно болыпе пяти!); этот случай является наихудшим. Необходимо также проверить невозможность зацикливания на пустых позициях. (Этот замечательный пример упаковки таблицы в 49 элементов предложен Дж. С.

Фншберном (3. Ясое РЫЬЬпгп), который также доказал, что 43 позиций для упаковки таблицы недостаточно.) Более медленоый, но болея многосторонний путь экономия памяти для луча был предложен Куртом Мази (Ките Ма!у), САСМ 19 (1976), 409-415. В общем, если нужно акать п разреженных таблиц, содержащих соответственно ям ..., я„ненулевых элементов, метод "первый подходвщнй", который смещает 1-ю таблицу на минимальную величину г, с целью избеяапня конфликтов с ранее размещенными таблицамн даст г, < (Я~ + . + хз-~)кы посколькУ каждый пРедшествУющнй ненУлееой элемент может блокировать не более яз смещений. Такая оценка наихудшего случая дает г; < 93 для табл. 1, гарантируя, что любые 12 таблиц длиной 30, содержшцне соответственно 10, 3, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2 ненулевых элементов, могут быть упакованы в 93 + 30 последовательных позиций безотносительно к лвончному представлению ненулевых элементов. Дальнейшее усовершенствование этого метода было проведено в работе В.

Е. Трап апс! А. С. Уао, САСМ 22 (1979), 606-611. Динамическая реализация сжатых лучей, прядя~ желная Ф. М. Лиангом (г. М. 1лвлб), исповьзована в таблицах переносов в издательской системе 'ХЕХ (см, П. Е. КппсЬ, САСМ 29 (1966), 471-478! Бйегаее Ргобгашпнпб (1991), 206-233). б. В каждом семействе сначала проверяется наиболее вероятный исход; для этого буквы располагаются слева направо в порядке уменьшения вероятности. Оптимальность такого упорядочения может быть доказана аналогично теореме 6.1Я.

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

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

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