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

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

PDF-файл Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2), страница 7 Практикум (Прикладное программное обеспечение и системы программирования) (37176): Книга - 4 семестрД. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2): Практикум (Прикладное программное обеспечение и системы программирования) 2019-05-09СтудИзба

Описание файла

PDF-файл из архива "Д. Кнут - Искусство программирования том 3 (2-е издание) - 2001 (Часть 2)", который расположен в категории "". Всё это находится в предмете "практикум (прикладное программное обеспечение и системы программирования)" из 4 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 7 страницы из PDF

5.4.9-20.) Эффект от применения аппаратной кэш-памяти при внутренней сорткровке анализировался в работе А. )аМагса„Н. Е. Бас(пег,,у, А)йогййшз 31 (1999), 66-104. Ее авторы пришли к выводу, что не следует включать шаг Яй в алгоритм 5.2.2ц, если для сортировки используется компьютер с современной архитектурой, хотя для компьютеров традиционной структуры, каковым является наш й11, алгоритм в прежнем виде вполне работоспособен.

Вместо того чтобы завершать быструю сортировку с помощью метода прямых вставок, предлагается, что, по мнению авторов, значительно лучше, заранее сортировать короткие подмассивы, сохраняя их ключи в кэш-памяти. А что можно сказать о нынешнем состоянии в области сортировки больших массивов данных? Одним из распространенных тестов для сравнительной оценки различных средств решения такого рода зцлач с 1965 года стала сортировка миллиона 100-символьных записей с равномерно распределенными случайнымя 10-символьными ключамк. Предполагается, что иси~дная последовательность и результат должны храниться на диске, а целью является минимизация времени обработки, включая время загрузки и запуска программы.

В работе В. С. Аяагжа), ЯОЛ1ОП Весогд 25, 2 (,1ппе, 1996), 240-246, описан эксперимент, проведенный на компьютере 1ВМ Вз/6000, модель 39Н, в котором используется процессор с ЫВС-архитектурой. Методом поразрядной сортировкц обрабатывались файлы, распределенные между восемью днскамн, и задача была решена за 5.1 с.

В подобных экспериментах узким местом является скорость ввода-вывода. Процессору для решения этой задачи понадобилось всего 0.6 с! 5|ожно получить еще более высокую скорость, если параллельно использовать несколько щюпессоров. Сеть из 32 рабочих станций 1)!гга8РА11С 1„каждая нз которых была оснащена двумя собственными дисками, может сортировать миллион записей за 2.41 с, используя гибридный метод, названный ХО%-Вогс [А. С. Аграс!-Впязеац, К. Н. АграсрПнззеац, В.

Е. Сц!!ег, Э. М. Нейехз1е1п, В. А. Раэгегзоп, ЯОМОП Весогд 26, (3ппе, 1997), 243-254). Изложенное выше подводит нас к выводу, что предлагаемый тест сортировки миллиона записей является, скорее, оценкой времени ввода вывода., чем эффективности метода собственно сортировки; входные последовательности ббльшей длины потребуют других, более "'значимых', тестов. Например, последовательность поистине глобального масштаба для глерабайтоеой сортировки — 10га записей по 100 символов —. была рассортирована за 2.5 ч. Этот результат получен в сентябре 1997 года на системе Бй! соп Огарййсз Ог!51п2000, включающей 32 процессора, 8 Гбайт оперативной памяти и 559 дисков по 4 Гбайт. Массив был рассортирован с помощью доступной на рынке программного обеспечения программы азот!™, разработанной К. Нибергом (С.

ХуЬегй), Ч. Койстером (С. Коевгег) н Дж. Греем (3. Огау), в которой используется неопубликованный до сих пор метод обработки. Но даже тест сортировки терабайтовых массивов может по нынешним временам оказаться недостаточно емким показателем. Наилучший из имеюп1ихся на сегодняшний день претендентов на звание "универсального" теста эффективности сортировки, который обещает жить вечно (во всяком случае, так нам хотелось бы), — это так называемый критерий Минут-Сорю. Суть его состоит в выяснении, сколько 100-символьных записей можно рассортировать за 60 с. Когда данная книга была на погледней стадии готовности к печати, рекордсменом по этому критерию был метод КОЕМУ-Вогг; 30 марта 1997 года 95 рабочим станциям, объединенным в сеть, понадобилось всего 59.21 с на сортировку 90.25 млн записей. Но и результаты, полученные на самых современных системах, не ощюверглн ни одну из основополагающих оценок, полученных теоретически, Подводя итоц можно с уверенностью заявить, что проблема эффективности сортировки остается сегодня такой же злободневной, как и ранее.

УПРАЖНЕНИЯ 1. [05) Подведите итог этой главе; сформулируйте обобщение теоремы 5.4.6А. 2. (ОО) Взяв за основу табл. 1, скажите, какой нз методов сортировки списков с шести- разрядными ключамв будет наилучшим для машины й1Х. 3. (57] (Усгаайчнаал сортировка с монимальным абэсмом памяти.) Считается, что алгоритм сортировки требует минимальной памяти, если он использует для своих переменных только 0((1ой Аг) э) бит памяти аюрх пространства„необходимого для размещения Ж записей.

Алгоритм должен быть общим в том смысле, что он должен работать при любых Аг, а не только прн определенном значении Аг, если, конечно, предполагается, что при вызове алгоритма для сортировки обеспечивается достаточное количество памяти с произвольным доступом. Во многих изученных нами алгоритмах сортировки это требованне минимальной памяти наруглается; в частности, запрещено использование АГ полей связи. Быстрая сортировка (алгоритм 5.2.2(4) удовлетворяет требованию минимальной памяти, ио время выполнения в наихудшем случае пропорционально Аз. Пирамидальная сортировка (алгоритм 5.2.3Н) является единственным среди изученных нами алгоритмом типа 0(йг!ой лг), который использует минимальный объем памяти, хотя можно сформулировать еще один подобный алгоритм, если использовать идею из упр.

5.2.4-13. Самым быстрым общим алгоритмом из изученных нами, который усгпойчнеа сортирует ключи, является метод слияния списков (алгоритм 5.2.41,), однако ои использует не минимальную память. Фактически единственными устойчивыми алгоритмами сортировки с минимальной памятью, которые мы анализировали, бьщи методы типа й(дг~) (простые вставки, метод пузьгрька и вариации на тему простого выбора). Разработайте устойчивый алгоритм сортировки с минимальной памятью, требующий менее 0(гг(!обгг)~) машинных циклов в наихудшем случае.

(Указание. Можно создать устойчивый метод счияиия, удовлетворяющий критершо минимальной памяти, который затрачивает на сортировку 0(Х 1об А') машинных циклов.) ° 4. (58) Алгоритм сортировки называется бсреяслнамм, если принимает решение только на основе сравнения ключей и никогда не вьпюлняет тех сравнений, результат которых может быть предсказан на основе сравнений, выполненных ранее. Какие из перечисленных в табгь 1 методов являются бережливыми? 5. [4б) Довольно сложно сравнивать неслучайные данные, в которых присутствует множество равных ключей. Придумайте тест для определения эффективности сортировки, который (1) был бы актуальным как сегодня, зяк и через 100 лет, (й) не включал бы в рассмотрение случай равномерно распределенных случайных ключей и (Й) не использовал бы входных последовательностей данных, которые изменились бы со временем.

Я посчитал бы пель достигнутой, если бы мне удалось рассортировать н олсположнть я логическом порядке основную часть того огоомного матеонала, касающегося соогнровкн, который появился зэ несколько последних лег. — /РК. К. ХОСКЕН (3. С. НОЕКЕИ) (1955) ГЛАВА б поиск Взглянем на запись... — ЭЛ СМИТ (А1 ЬМП Н) (1928) Эта глава могла бы носить более претенциозное название .— "Хранение и получение информации"; с другой стороны, ее можно было бы назвать кратко и просто— "Просмотр таблиц".

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

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

В целом, мы предполагаем, что имеется набор из Ф записей и задача состоит в нахождении одной из них, Как и в случае сортировки, мы полагаем, что каждая запись включает специальное поле, именуемое ее ключом; данный термин удачен, так как, несомненно, отражает тот печальный факт, что ежедневно миллионы людей тратят время и силы на поиски собственных неизвестно куда запропастившихся ключей... В общем случае нам требуется )1' различных ключей для того, чтобы каждый из иих однозначно идентифицировал связанную с ним запись.

Набор всех записей именуется таблицей или файлом, причем слово "таблица" обычно используетгя для описания маленького файла„а слово "файл" — для описания большой таблицы. Болыпой же файл (или группу файлов) часто называют базой данных. Алгоритм поиска имеет так называемый пргдменш, К, и задача заключается в нахождении записи, для которой К служит ключом. Результатом поиска может быть одно из двух: либо поиск завершился успешно, и уникальная запись, содержащая К, найдена, либо поиск оказался неудачным, и запись с ключом К не найдена.

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

Хотя цель поиска — нахождение информации, хранящейся в асоэциированной с К записи, алгоритмы в этой главе предназначены для поиска К. После нахождения К поиск связанной с ним информации становится тривиальной задачей, зависящей от способа хранения информации. Например, найдя К в ТАВ1.Е+ 1, мы обнаружим связанные с ним данные в ТАЕТЕ+ 1 + 1, в ВАТА + г' или в еще каком-то месте, которое определяется способом хранения информации. Поэтому мы считаем задачу выполненной в тот момент, когда находим К (или убеждаемся в его отсутствии).

Поиск обычно является наиболее "времяемкой" частью многих программ, и замена плохого метода поиска хорошим может значительно увеличить скорость работы программы. К тому же часто представляется возможным так изменить данные или используемые структуры, что поиска удается избежать совсем. Одним из таких способов может быть связь данных (например, при использовании списка с двойнымн связями поиск предшествующего и последующего элементов данного становится совершенно излишним). В случае, когда мы можем выбирать ключи, имеется еще один способ избежать поиска: выбрать в качестве ключа натуральные числа (1,2,..., М); при этом запись с ключом К просто размещается в ТАВЕЕ+ К, Обе эти технологии были использованы, чтобы избежать поиска в алгоритме топологической сортировки, обсуждавшемся в разделе 2.2.3. Однако поиск необходим, если объекты для топологической сортировки представлены не числовыми, а символьными значениями.

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