Главная » Просмотр файлов » 1626435697-9d9ede204f9baad60159c2d6531787c7

1626435697-9d9ede204f9baad60159c2d6531787c7 (844297), страница 25

Файл №844297 1626435697-9d9ede204f9baad60159c2d6531787c7 (Хопкрофт, Ульман 1979 - Построение и анализ вычислительных алгоритмов) 25 страница1626435697-9d9ede204f9baad60159c2d6531787c7 (844297) страница 252021-07-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

целыми регистрами. Тогда время считывания входных данных есть йлн. Если отношение ЬП ограничено постоянной, то тривиальная нижняя оценка сложности сортировки имеет вид сл, где с — некоторая постоянная. Воцрос о достижимости (по порядку) таких нижних оценок открыт.— Прим. перев. 12Ь ЗАМЕЧАИИ5! !Нз ЛИТЕРАТУРЕ Замечания ле литературе Книга Кнута [1973а! представляет собой энцнилопедическое руководство по методам сортировки.

Сортдеревом берет начало от Уильямса (1964]; некоторые улучшения сделаны Флойдом [1964! Быстрсорт ввел Хоор (1962]. Улучшения Быстрсорт по схеме упр. 3.28 предложены Синглтоном [1969[, а также Фрейзером, Мак-Келларам [!970], Алгоритм 3.6 для нахождения порядковой статистики, линейный в худшем случае, изложен в работе Блюма, Флойда, Пратта, Ривеста, Тарьяна [1972]. Хейдиан, Соубел [1969! и Пратт, Яо [1973] исследуют число сравнений, необходимое для нахождения некоторых порядковых статистик. Результат упр. 3.21 получен Кнслицыным [1964[. Упр.

3.22, 3.23 и 3.29 взяты из работы Флойда, Ривеста (1973], где также приведена более сильная нижняя оценка, чем та, что указана в упр. 3.22. Упр. 3.19, 3.20 и некоторые обобщения обсуждаются в работах Гейла, Карпа [1970! и Лю [1972[. Интересное приложение сортировки к нахождению выпуклой оболочки множества точек на плоскости дано Грэхемом [1972]. Стабильнан сортировка рассмотрена Хорватом [1974]. СТРУКТУРЫ ДАННЫХ ДЛЯ ЗАДАЧ, 4 КАСАЮЩИХСЯ РАБОТЫ С МНОЖЕСТВАМИ Хороший подход к разработке эффективного алгоритма для данной задачи — изучить ее сущность.

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

В настоящей главе изучаются семь основных операций над множествами, типичных для многих задач информационного поиска. Мы приведем разнообразные структуры данных для представления множеств и рассмотрим пригодность каждой из них в ситуациях, когда выполняется та или иная последовательность операций различных типов. 4.1. ОСНОВНЫЕ ОПЕРАЦИИ НАД МНОЖЕСТВАМИ Будем рассматривать следующие основные операции над множествами. Ь ПРИНАДЛЕЖАТЬ(а, 5). Устанавливает принадлежность а множеству 5; если а Е 5, печатается "да"; в противном случае— "иет." 2. ВСТАВИТЬ(а, 5).

Заменяет 5 на 5 ц(а). 3. УДАЛИТЬ(о, 5). Заменяет 5 на 5 — (а). 4. ОБЪЕДИНИТЬ(5„5„5,). Строит множество 5,=5, ц5,. Мы будем предполагать, что в тех случаях, когда применяется эта операция, множества 5, и 5, не пересекаются; это делается для того, чтобы избежать необходимости удалять повторяющиеся экземпляры одного и того же элемента в 5, ц 5,.

5. НАЙТИ (а). Печатает имя того множества, которому в данный ол. ОСНОВНЫЕ ОПЕРАЦИИ НАД МНОЖЕСТВАМИ момент принадлежит а. Если а принадлежит более чем одному множеству, то операция не определена. 6. РАСЦЕПИТЬ(а, Я). Здесь предполагается, что множество Я наделено линейным порядком (. Операция разбивает Я на два множества Зк=(Ь|(м=а н Ь ЕЯ) и Яо=(Ь!Ь)а н Ь ЕЯ. 7. М(Ь) (Я). Выдает наименьший (относительно «) элемент множества 5. Многие задачи, встречающиеся на практике, можно свести к одной или нескольким подзадачам, таким, что каждую подзадачу можно абстрактно сформулировать как последовательность основных команд, которые следует выполнить на некоторой базе данных (универсальном множестве элементов).

В данной главе мы будем изучать последовательности О команд, каждая нз которых является операцией одного из перечисленных выше семи типов. Например, выполнение последовательностей, состоящих из операций ПРИНАДЛЕЖАТЬ, ВСТАВИТЬ и УДАЛИТЬ, составляет существенную часть многих задач поиска.

Структура данных, которую можно использовать для выполнения последовательности этих операций, будет называться словарем. В настоящей главе рассматривается несколько структур данных (такие, как таблицы расстановки, деревья двоичного поиска н 2-3-деревья), которые могут быть словарями. Здесь возникает много интересных вопросов. Нас будет интересовать главным образом временная сложность выполнения операций в О, т. е.

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

е. в свободном режиме), но обратное верно не всегда. Мы увидим ситуации, когда свободный алгоритм работает быстрее любого из известных префнксных. Однако во многих приложениях приходится рассматривать только префиксные алгоритмы. Пусть дана последовательность операций, которую надлежит выполнить. Основной вопрос: какую структуру данных использовать для представления универсальной базы данныхУ Часто задача будет требовать осторожного взвешивания всех за и против каждого о А.Ако, Д:и. Хопкрккьк, Дм. Уоьпоп ГЛ.

А СТРУКТУРЫ ДАИНЪ|Х ДЛЯ ЗАДАЧ С МНОЖЕСТВАМИ конкретного выбора. В типичной ситуации последовательность будет состоять из нескольких операций, подлежащих многократному выполнению, часто в неизвестном порядке. Может оказаться несколько структур данных, каждая из которых позволяет одну операцию выполнять легко, а другие — с большим трудом. Во многих случаях лучшим решением будет компромисс. Часто мы будем использовать структуру, которая не делает максимально легким выполнение ни одной из операций, но позволяет выполнить всю работу лучше, чем прн любом очевидном подходе. Приведем пример, показывающий, как сформулировать задачу о построении остовного дерева для графа в терминах последователь.

ности операций над множествами. Определение. Пусть О= (У, Е) — неориентированный граф. Остовным деревом Я (для) графа 6 называется неориентированное дерево вида (У, Т), Т~Е. Осяоаным лесом (для) графа О называется множествонеориентированныхдеревьеввида ((У„Т|,), (У„Т,), ... ..., (УА, ТА)), в котором У| образуют разбиение множества') У, а каждое множество Т, является (возможно, пустым) подмножеством в Е.

Функцией стоимости для графа 6= (У, Е) называется отображение с из Е в множество вещественных чисел. Стоимостью подграфа б'= (У', Е') графа б считается с(6')= Х с(е). вв Пример 4.1. Рассмотрим алгоритм, приведенный на рис. 4.1, для нахождения для данного графа 6=(У, Е) остовного дерева 3=(У, Т) наименьшей стоимости. Зтот алгоритм построения остов- ного дерева наименьшей стоимости подробно обсуждается в разд.

5,1, а его применение проиллюстрировано в примере 5.1. В алгоритме на рис. 4.1 участвуют три множества Е, Т и УЕ. Множество Е содержит ребра данного графа О, а Т используется для сбора ребер окончательного остовного дерева, Работа алгоритма состоит в преобразовании остовного леса для О в единое остовиое дерево. Множество УЯ содержит множества узлов, входящих в деревья этого остовного леса. Вначале УЯ содержит каждый узел графа 6 в виде одноэлементного множества. Можно считать этот алгоритм последовательностью операций с тремя множествами Е, Т и УЕ. В строке 1 формируется начальное значение для Т, в строках 2 и 3 — для УЯ (элементы множества УЕ сами являются множествами).

В строке 3 добавляются исходные одноэлементные множества к УЕ. Строка 4, управляющая основным циклом алгоритма, предполагает наличие счетчика множеств, составляющих УЕ. В строке 7 выясняется, соединяет ли ребро (о, и|) два остовных дерева в остовном лесу. Если да, то в строке 8 этн два В то У|ЦУв(!...(!У =У я У|ПУ7 |3| е м~й АЬ ОСНОВНЫЕ ОПЕРАЦИИ НАД МНОЖЕСТВАМИ Ьея!п т-а; 2.

$г5 — И; 3. 4ог каждый узел ОЕ)г с(о добавить одноэлемеитное множество (о) к )г5; 4. тч)т!(е !(г5!)) 1 до Ьеи(п 6. выбрать из Е ребро (и, тв) наименьшей стоимости; 6, удалить (О, в) из Е; 7. )! и и иг принадлежат разным множествам ягт и (!га из Р5 1)теп Ьея)п 8. заменить )(гт и Яг", в (т5 на )!т, В Яр;, 9. добавить (О, тв) к 7' епс! епд епс! Рис. 4Л. Алгоритм для нахождения остовного дерева наименьшей стоимости.

дерева сливаются, а в строке 9 ребро (о, ги) добавляется к окончательному остовному дереву. Строка 7 предполагает, что мы можем найти имя того множества в (г5, которое содержит конкретный узел. (Вид имен, действительно используемых для множеств в тг5, не важен, так что можно употреблять произвольные имена.) По существу, строка 7 предполагает, что мы можем эффективно выполнить основную операцию НАЙТИ.

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

Тип файла
DJVU-файл
Размер
5,53 Mb
Тип материала
Высшее учебное заведение

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

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