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

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

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

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

Поиск в этом кластере крайней слева (справа) 1 дает позицию преемника (предшественника). Для удаления значения х положим 1 = (к/ь2и~. Установим А[х1 равным О, а затем установим еиттагу(1~ равным логическому ИЛИ битов в 1-м кластере. В каждой из описанных выше операций мы выполняем поиск не более чем в двух кластерах по Чеи бит, плюс в массиве зиелтлагу, так что каждая операция выполняется за время 0(к/и). На первый взгляд создается впечатление не прогресса, а регресса. Наложение бинарного дерева дает нам операции со временем выполнения 0(1яи), что асимптотически быстрее, чем время О(к/и). Однако применение дерева со степенью к/и оказывается ключевой идеей деревьев ван Эмде Боаса.

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

573 Гааеа гд деревья ван Эмде Боаса голл Предположим, что вместо дерева со степенью ь/й мы накладываем дерево со степенью и'/ь, где к > 1 — константа. Какой будет высота такого дерева и за какое время будет выполняться каждая из операций иад ним? 20.2. Рекурсивная структура В этом разделе мы модифицируем идею наложения дерева степени ~/й на битовый вектор.

В предыдущем разделе мы использовали структуру размером ~/й, каждый элемент которой указывал на другую структуру размером т/й. Теперь мы делаем структуру рекурсивной, уменьшая размер универсума на квадратный корень на каждом уровне рекурсии. Начиная с универсума размером и, мы делаем структуры хранящими ~/й = и1/з элементов, которые хранят структуры по и1/4 элементов, которые хранят структуры по и'/а элементов, и так далее до базового размера 2. Для простоты в этом разделе мы считаем, что и = 2~ для некоторого целого числа 14, так что и, и'/з, и'/4,...

являются целыми числами. На практике это ограничение является достаточно жестким, ограничивающим нас значениями и из последовательности 2, 4, 16, 256, 65536,.... Из следующего раздела вы узнаете, как ослабить это предположение и считать только, что и = 2" для некоторого целого числа (с. Поскольку рассматриваемая в этом разделе структура представляет собой только предвестник настоящего дерева ван Эмде Боаса, отнесемся терпимо к этому ограничению, призванному способствовать облегчению понимания. Вспомним, что наша цель — получить время работы операций, равное 0(1я1яи), и подумаем, как можно ее достичь. В конце раздела 4.3 мы видели, что путем замены переменных можно показать, что рекуррентное соотношение Т(п) = 2Т ( (~/и) ) + 1к и (20.1) имеет решение Т(п) = О(16п1616п). Рассмотрим похожее, ио более простое рекуррентное соотношение Т(и) = Т(ъ/и) + 0(1) . (20.2) Если воспользоваться тем же методом замены переменных, можно показать, что рекуррентное соотношение (20.2) имеет решение Т(и) = 0(1616и).

Пусть гп = 1к и, так что и = 2'", и имеем Т(2 ) = Т(2~/~) + О(1) . Теперь переименуем Я(т) = Т(2 ), что даст новое рекуррентное соотношение Я(т) = Я(та/2) + О(1) . 574 Часто и Сложные структуры даккыл Согласно случаю 2 основного метода это рекуррентное соотношение имеет решение Б(т) = О(1кт). Вернемся от Я(т) к Т(и), получая Т(и) = Т(2 ) = Я(т) = 0(1кт) = О(1к!ки). Рекуррентное соотношение (20.2) будет направлять наши поиски структуры данных. Мы разработаем рекурсивную структуру данных, которая на каждом уровне рекурсии будет выполнять уменьшение на множитель т/й. Когда операция обходит эту структуру данных, на каждый уровень, прежде чем опуститься на уровень ниже, она затрачивает константное время.

Время выполнения такой операции характеризует рекуррентное соотношение (20.2). Вот еще один способ представить, как в решении рекуррентного соотношения (20.2) получается 1к1ки. Рассматривая размер универсума на каждом уровне рекурсивной структуры данных, мы получаем последовательность 4/4 и4/а, Есш4 рассмотрет какое жшнчество битов требуется для хранения размера универсума на каждом уровне, мы получим 1ки на верхнем уровне„ и каждый последующий уровень будет требовать половину битов предыдущего.

В общем случае, если мы начнем с 6 бит и будем уменьшать это количество на каждом уровне в два раза, то после 1к 6 уровней мы придем к одному биту. Поскольку 6 = !ли, после 1к 1ки уровней получаем размер универсума, равный 2. Вернемся к структуре данных на рис. 20.2. Заданное значение х располагается в кластере с номером (х/т/й). Если рассматривать х как 1ки-битовое бинарное целое число, то номер кластера, (х/з/й), определяется (1к и)/2 старшими битами числа х. В своем кластере х находится в позиции х шое) з/й, которая определяется (!я и)/2 младшими битами числа х.

Позже нам потребуется такая индексация, так что определим некоторые функции, которые облегчат нашу работу: Ь)яЬ(х) = (х/з/й), 1оло(х) = х шос) к/й, ш4)ех(х, у) = хт/й+ у . Функция Ь(кЬ(х) дает (1к и)/2 старших битов числа х, возвращая номер кластера х. Функция 1оло(х) дает (1я и)/2 младших битов числа х и указывает позицию х в его кластере. Функция 1пе(ех(х, у) строит номер элемента из значений х и у, рассматривая х как (1ки)/2 старших битов номера элемента, а у — как (1я и)/2 младших битов. Справедливо тождество х = 1пс(ех(Ь(кЬ(х), 1оло(х)). Значение и, используемое каждой из этих функций, всегда представляет собой размер универсума структуры данных, в которой вызывается данная функция и которое изменяется при переходе к рекурсивной структуре.

20.2.1. Протоструктуры ван Эмде Бааса От рекуррентного соотношения (20.2) перейдем к построению рекурсивной структуры данных, поддерживающей указанные операции. Хотя эта структура данных и не позволяет достичь нашей цели — времени работы 0(1к1ки) — для некоторых операций, она служит основой для структуры дерева ван Эмде Боаса, с которой мы встретимся в разделе 20.3.

улове 20. Де)оееья еон Эмое Бааса 575 ьвЬя) я ьяо ,„lй ртозо-оЕВ(,/и) струатур Рис. 20.3. информация в струкгуре ртосо-оеВ(н) нри и > 4. структура сонери версума и, указатель янтзнату на структуру ртозо-оЕВ(,/и) и массив с)нязет]0 .. указателей на ртосо-оЕВ( /н)-сзруктурм. нт размер унизуй — 1] нз з/й Если и = 2, то зто базовый размер, и она содержит массив А[0 ..

1] из двух битов. В противном случае и = 22 для некоторого целого числа )с > 1, так что и > 4. В дополнение к размеру универсума и структура данных рто1о-нЕВ(и) содержит следующие атрибуты, показанные на рис. 20.3: указатель аипзтпату на структуру рго1о-иЕВ(,/и); ° массив с(ил1ет[0 .. з/й — 1] из;/й указателей, каждый из которых указывает на ртого-иЕВ(.,/й) структуру. Элемент х, где 0 < х < и, рекурсивно хранится в кластере номер Ь)я)з(х), как элемент номер )озо(х) в пределах этого кластера. В двухуровненой структуре из предыдущего раздела каждый узел хранит массив размером з/й, каждый элемент которого содержит один бит. По индексу каждого элемента можно вычислить начальный индекс подмассива размером з/й, который резюмируется этим битом.

В протоструктуре вместо вычисления индексов используются явные указатели. Массив аитглату содержит резюмирующие биты, рекурснвно хранящиеся в протостру«туре, и массив с)иа1ег, содержащий з/й указателей. На рис. 20.4 показана (полностью развернутая) протоструктура ргого-нЕВ (16), представляющая множество (2, 3,4, 5, 7, 14, 15) . Если значение з находится в протострукгуре, на которую указывает виттату, то з-й кластер содержит некоторое значение из представленного множества. Как и в дереве с константной высотой, с)млеет[з] представляет значения от зз/й до (з + 1)з/й — 1, которые образуют з-й кластер.

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

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

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