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

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

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

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

В наихудшем случае наряду с вызовом Ркото-чЕВ-Мпимпм она делает еще два рекурсивных вызова. Процедура Рното-чЕВ-Бпссеазок(К х) возвращает наименьший элемент в протоструктуре К, больший, чем х, или значение нп., если в К нет элемента, большего, чем х. Условие, чтобы элемент х имелся в множестве, не ставится, но предполагается, что О < х < К и. Рното-чЕВ-Боссеззок(К х) 1 1ТКи== 2 2 !Гх== о и КА[1] ==1 3 ге!пгп 1 4 е!ве гегпгп мп.

5 е!ве оДве! = Ркото-чЕВ-Боссеззок(К с1ив!ег(Ь18Ь(х)), 1ои(х)) б !Т оЯЪе! ф мн. 7 гегпгп 1пе!ех(1щЬ(х), обЪе!) 8 еье васс-с1иввет = Ркото-чеВ-Бпссеззок(квиттагу,ыйь(х)) 9 !Г васс-с1ив!ет == ып. 10 ге!игл нп. 11 е!ве о5евег = Рното-чеВ-м!ьпмпм(к с(ив!ет(васс-с1ив!ет)) 12 ге!пгп 1пе) ех(висс-с(ив!ет, обеве1) Часть и Сложные струюпуры данныл 5вО Процедура Ркото-ЧЕВ-Боссняяок работает следующим образом. Как обычно, в строке 1 проверяется базовый случай, обрабатываемый методом грубой силы в строках 2-4: единственный вариант наличия преемника у х в структуре рто1о-иЕВ(2) — при х = 0 и А[1), равном 1.

В строках 5 — 12 выполняется обработка рекурсивного случая. В строке 5 выполняется поиск преемника х в кластере х с присваиванием результата переменной обЬек В строке б определяется, имеет ли х преемника в своем кластере; если имеет, то строка 7 вычисляет и возвращает значение этого преемника. В противном случае требуется выполнить поиск в других кластерах. В строке 8 переменной лисс-с1ив1ет присваивается номер следующего непустого кластера с использованием резюмирующей информации для его поиска. В строке 9 выполняется проверка равенства лисс-с1ив1ет значению Мй., при этом, если все последую1цие кластеры пусты, в строке 10 процедуры возвращается значение ми..

Если лисс-с)извет не равно н1ь, то в строке 11 переменной обве1 присваивается первый элемент этого кластера, а строка 12 вычисляет и возвращает минимальный элемент в данном кластере. В наихудшем случае процедура Рното-ЧЕВ-Босскяяок рекурсивно вызывает сама себя дважды для структур рто1о-иеВ(,,/й) и делает один вызов РкоточеВ-м1м1МОМ для структуры рто1о-иеВ(,/й). таким образом, рекуррентное соотношение для времени работы процедуры Рното-ЧЕВ-815сскяяок в наихудшем случае Т(и) имеет вид Т(и) = 2Т( и) + сл(18 Ч'и) = 2Т(чти) + 6(18и) . Можно применить ту же методику, что и для рекуррентного соотношения (20.1), и показать, что данное рекуррентное соотношение имеет решение Т(и) ев(18 и 18 18 и).

Таким образом, Ркото-ЧЕВ-Зссскяяок асимптотически медленнее РКОТО-ЧЕВ-М1Н1МОМ. Вставка элемента Для вставки элемента необходимо вставить его в соответствующий кластер, а также установить резюмирукиций бит этого кластера равным 1. Процедура Ркото-ЧЕВ-1мяккт()т, х) вставляет значение х в протоструктуру 1т. Ркото-чЕВ-11няект(т', х) 1 111л.и==2 2 у'.А[х) = 1 3 еЬе Рното-ЧЕВ-1няккт(1т. с1ив1ет[Ь18Ь(х)), 1ож(х)) 4 Ркото-ЧЕВ-1няякт(1т.виттату, Ь18Ь(х)) В базовом случае строка 2 устанавливает соответствукиций бит в массиве А равным 1. В рекурсивном случае рекурсивный вызов в строке 3 вставляет х в соответствующий кластер, а строка 4 устанавливает резюмирующий бит этого кластера равным 1. Гаева ед деревья вая Эмде Баева Поскольку процедура Ркото-чЕВ-1нзект в наихудшем случае делает два рекурсивных вызова, ее время работы характеризуется рекуррентным соотношением (20.3).

Следовательно, время работы процедуры Ркото-чЕВ-1нзект равно 9(1би). Удаление элемента Операция Оееете более сложная, чем операция вставки. В то время как при вставке всегда можно установить резюмирующнй бит равным 1, при удалении сбросить резюмирующий бит в 0 можно не всегда. Нужно определить, есть ли в данном кластере единичные биты. Исходя из определения протоструктур, требуется исследовать все ч'и бит кластера, чтобы выяснить, есть ли среди них хотя бы один, равньвй 1. В качестве альтернативы в протоструктуру можно добавить атрибут п, указывающий количество элементов в ней. Реализация процедуры Ркото-чЕВ-1)ееете оставлена читателям в качестве упр. 20.2.2 и 20.2.3. Очевидно, что нам нужно так модифицировать протоструктуру ван Эмде Боаса таким образом, чтобы каждая операция выполняла не более одного рекурсивного вызова.

Из следующего раздела вы узнаете, как это можно сделать. Упражнения 20.2.2 Напишите псевдокоды процедур Ркото-чЕВ-МАх~мом н Ркото-чЕВРкеоесеззок. 20.2.2 Напишите псевдокод процедуры Ркото-чЕВ-Оееете. Она должна обновлять соответствующий резюмирующий бит путем сканирования соответствующих битов кластера.

Каково время работы вашей процедуры в наихудшем случае? 20.2.3 Добавьте к каждой протоструктуре атрибут и, указывающий количество элементов, которое она представляет во множестве в данный момент, и напишите псевдокод процедуры Рното-чЕВ-Рееете, использующий этот атрибут и для принятия решения о сбросе резюмирующих битов в О. Каково время работы вашей процедуры в наихудшем случае? Какие другие процедуры должны быть изменены в связи с добавлением этого нового атрибута? Повлияют ли эти изменения на времена работы этих процедур? 20.2.4 Модифицируйте протоструктуру таким образом, чтобы она поддерживала дублирующиеся ключи. 20.2.5 Модифицируйте протоструктуру таким образом, чтобы она поддерживала ключи со связанными с ними сопутствующими данными.

Часть и Сложные струннеры данных 58л гО.гсв Напишите псевдокод процедуры, создающей протоструктуру рго1о-оЕВ(и). го.г.у Докажите, что если выполняется строка 9 процедуры Ркото-чЕВ-М1 п~мпм, то протоструктура пуста. го.г.в Предположим, что разработана протоструктура, в которой каждый массив с1ил1ег имеет только иь/4 элементов. Какими будут времена работы каждой из операций? 20.3.

Дерево ван Эмде Бааса Протоструктура из предыдущего раздела не позволяет достичь искомого времени работы 0(1к 1к и). Это связано с тем, что в большинстве операций требуется слишком много рекурсивных вызовов. В этом разделе мы разработаем структуру данных, подобную протоструктуре ван Эмде Боаса, но хранящую немного больше информации и тем самым устраняющую необходимость в части рекурсии. В разделе 20.2 мы видели, что сделанное предположение о размере универсума — и = 2 для некоторого целого )с — неоправданно ограничивает возможные эь значения и слишком разреженным множеством значений. Начиная с этого момента мы позволяем размеру универсума быть любой точной степенью 2 и, когда ь/й не является целым числом (т.е. и представляет собой нечетную степень 2; и = 2э"+1 для некоторого целого )с ) О), мы будем делить |я и бит числа на старшие ((10 и)/21 бнт и младшие ~(!би)/2) бит.

Для удобства обозначим 2(ОЯ")/з) ("верхний квадратный корень" и) как чл/й, а 21('Я )/з) ("нижний квадратный корень" и) как чь/й„так что и = чл/й чьсй и, когда и представляет собой четную степень 2 (и = 2эн для некоторого целого й), ~~~й = ь/й = чсй. Поскольку мы позволяем и быть нечетной степенью 2, следует переопределить вспомогательные функции из раздела 20.2: ЫОЬ(х) = (х/т/й), 1олч(х) = х пюс1 эь/й, 1пг(ех(х, у) = х чьгй+ у .

20.3.1. Деревья ван Эмде Боаса Дерево ван Эмде Бааса (чап Епйе Воаз ггее — чЕВ-дерево), модифицирует протоструктуру ван Эмде Боаса. Обозначим чЕВ-дерево с размером универсума и как чЕВ(и) и, если только и не равно базовому размеру 2„с атрибутом аиглтагу, указывающим на деРево чЕВ( чл/й), и с массивом с1ил1ег'10 .. чл/й — Ц, Указывающим на деревья ~~й иЕВ( ь/й).

Как показано на рис. 20.5, чЕВ-дерево содержит два атрибута, отсутствующие в протоструктуре; )лава 20. Деревья ввя Эмде Боаса оЕВ(ьз2й) Чзи оЕВ( и)-деревьев Ряс. 20.5. информапнл в оеВ(и)-дереве прн и > 2. структура содерлоп размер универсума и, элементы оззн н озее, улазатель виозозосу на дерево оЕВ(ьзтй) н масона сньяес]О..

ьзlй — 1] вз ~(/й указателей на оЕВ(4й)-деревья. гпзп хранит минимальный элемент чЕВ-дерева; тох хранит максимальный элемент чЕВ-дерева. Кроме того, элемент, хранящийся в тт, не появляется ни в одНом из рекурсивных деревьев оЕВ(4lй), на которые указывает массив с1ил1ег. 'Таким образом, элементы, хранящиеся в иЕВ(и)-дереве ч", представляют собой К тт плюс все элементы, рекурсивно храняпшеся в чЕВ(Ки)-деревьях, на которые указывают )2. с1ил(ег[0 ..

~~/й — Ц. Заметим, что, югда чЕВ-дерево содержит два или более элементов, мы рассматриваем тт и кпах по-разному: элемент, хранящийся в тзп, не появляется ни в одном из кластеров, в отличие от элемента тах, который располагается в кластере (кроме случая, когда чЕВ-дерево содержит единственный элемент, так что минимальный и максимальный элементы совпадают). Поскольку базовый размер равен 2, чЕВ(2)-дерево не нуждается в массиве А, который имеет соответствующая структура рго1о-иЕВ(2).

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

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

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