AOP_Tom3 (1021738), страница 67

Файл №1021738 AOP_Tom3 (Полезная книжка в трёх томах) 67 страницаAOP_Tom3 (1021738) страница 672017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В этом случае Р выбирается достаточно большим, чтобы заполнитгь по существу, всю внутреннюю память. Каждая запись при выводе замещается очередной записью из исходных данных. Если ключ новой записи меньше ключа выведенной записи, то мы не добавляем ее в текущую серию; в противном случае мы обычным образом включаем ее в дерево выбора, так «го она образует часть серии, порождаемой в данный момент.

Таким образом, каждая серия может содержать больше Р записей, хотя в любой момент в дереве выбора находится не более Р записей. В табл. 1 показан этот процесс для Р = 4; числа, заключенные в скобки, ожидают включения в следующую серию. Таблица 1 ПРИМЕР ЧЕТЫРЕХПУТЕВОГО ВЫБОРА С ЗАМЕЩЕНИЕМ Содержимое памяти Вывод Этот важный метод формирования начальных серий впервые был описан Х. Г. Сьювордом (Е.

Н. Яеиагс), Мавгег'в ТЬемв, )з(811а! Сопйлцег ЬаЬогагогу Верогг П-232 (Мавв. 1пвп о1 ТесЛпо)оку, 1954), 29 — 30]. Он привел соображения в пользу того, что если применять метод к случайным данным, серии, видимо, будут содержать более 1.5Р записей. Ту же идею предложил примерно в 1950 году А. И. двуми (А.

1. Вппвеу), который занимался разработкой в Епя(пеег1пб ВевеагсЬ Аввос1а1ев специального устройства для сортировки, но не опубликовал ее. Само название "выбор с замещением" было придумано Э. Г. Френдом [Е. Н. Рг)епб, зАС81 3 (1956), 154), который заметил, что "ожидаемая длина порождаемой последовательности не поддается точной формулировке, но эксперименты позволяют предположить, что разумной оценкой будет 2Р". 503 503 503 503 (275) (275) (275) (275) (275) 275 275 087 087 170 897 897 897 897 (154) (154) 154 612 512 512 512 512 512 653 (426) (426) (426) 426 426 061 908 908 908 908 908 908 908 (509) 509 509 061 087 170 503 512 653 897 908 (Конец серии) 154 275 ам Рнс.

64. Вечный снегоочиститель в своем нескончаемом цикле. Э. Ф. Мур (Е. Г. Мооге) предложил изящный способ доказательства того, что ожидаемая длина серии равна 2Р, проведя аналогию со снегоочистителем, движущимся по кругу [Г Я. РаСеп~ 2933904 (1961), со!цпшз 3-4).

Рассмотрим ситуацию, изображенную иа рис. 64: па кольцевую дорогу равномерно падают снежинки и один снегоочиститель непрерывно убирает снег. Снег исчезает из системы, как только он выбрасывается на обочину. Точки дороги обозначаются вещественными числами х, О < х < 1, снежинка, падающая в точку х, соответствует входной записи с ключом х, а снегоочиститель представляет собой вывод процесса выбора с замещением.

Скорость снегоочистителя обратно пропорциональна весу снега, который встречается на его пути, и ситуация вполне уравновешена, так что общее количество снежинок на дороге в точности равно Р. Каждый раз, когда снегоочиститель проходит точку О, на выходе формируется новая серия. Интуитивно ясно, что система, поработав некоторое время, выйдет на установившийся режим, при котором снегоочиститель будет двигаться с постоянной скоростью (в силу круговой симметрии дороги). Это означает, что в точке, в которой находится снегоочиститель, снег имеет постоянный вес, а впереди снегоочистителя зтот вес линейно уменьшается, как показано на рис.

65. Отсюда следует, что количество снега, удаляемого за один оборот (а именно — длина серии), вдвое превосходит количество снега Р, присутствующего в любой момент. :. Булущн» снег Рнс. 66. Поперечное сечение, показывающее переменный вес снега перед снегоочистителем, когда система нахадится в установившемся режиме. ключ, находящийся в данном внешнем узле; запись, находящаяся в данном внешнем узле [включая КЕ1 как подполе); указатель на "проигравшего" в данном внутреннем случае; номер серии, содержащей запись, на которую указывает ЕОБЕН; указатель на внутренний узел, расположенный в дереве выбора выше данного внешнего узла; указатель на внутренний узел, расположенный в дереве выбора выше данного внутреннего узла. КЕУ— НЕСОНО— ЕОЯЕН— НИ— РЕ— Например, при Р = 12 внутренний узел с номером 5 и внешний узел с номером 17 на рис.

63 будут представлены узлом Х[э] с полями КЕ1 = 170, ЕОБЕН = Ее + 9с [адрес внешнего узла с номером 21), РЕ = Ье + 8с, Р1 = ба + 2с. Значения в полях РЕ и Р1 являются константами; таким образом, строго говоря, нет необходимости хранить их в явном виде. Однако иногда иа начальной фазе внешней сортировки для быстрой работы с устройствами ввода-вывода выгоднее хранить эту изоыточную информацию, чем вычислять ее каждый раз заново. Во многих коммерческих приложениях входные данные нельзя считать полностью случайными — в них уже существует определенный порядок. Следовательно, серии, порождаемые выбором с замещением, преимущественно содержат больше чем 2Р записей. В дальнейшем мы увидим, что время, необходимое для внешней сортировки методом слияния, в значительной степени зависит от количества серий, порождаемых начальной распределительной фазой, так что выбор с замещением становится особенно привлекательным.

Другие способы внутренней сортировки порождали бы примерно вдвое болыпе начальных серий, поскольку размеры оперативной памяти ограничены. Теперь детально рассмотрим процесс создания начальных серий методом выбора с замещением. Следующий алгоритм принадлежит Джону Р. Уолтерсу [лойп В..

Жа!!егв), Джеймсу Пзйнтеру (Лашев Ра!пгег) и Мартину Залку [Маг!,ш Кайс), которые использовали его в программе сортировки методом слияния для компьютера Р!и)!со 2000 в 1958 году. Алгоритм включает интересный способ начального формирования дерева выбора и разделения записей, принадлежащих разным сериям, а также вывода последней серии по единообразной, сравнительно простой логике. [Надлежащая обработка последней серии, порожденной методом выбора с замещением, оказывается довольно сложной: блок, осуществляющий зту обработку, часто бывает камнем преткновения для программиста.) Основная идея заключается в том, чтобы рассматривать каждый ключ как пару [5, К), где К вЂ” первоначальный ключ, а 5 — номер серии, которой принадлежит данная запись. Мы получим выходную последовательность, порожденную методом выбора с замещением, если лексикографически упорядочим зти расширенные ключи [5 считается старше К).

В приведенном ниже алгоритме для представления дерева выбора используется структура данных, состоящая из Р узлов, Предполагается, что З-й узел Х[Я содержит с слов, начинающихся с ЕОС(Х[Я) = Ео + су, 0 < ~' < Р. Он представляет как внутренний узел с номером у, так и внешний узел с номером Р + у (см. рис. 63).

В каждом узле имеется несколько гюлей: Рис. 66. Получение начальных серий методом выбора с замещением. Алгоритм В. (Выбор с замещением). Этот алгоритм (рис. 66) считывает записи последовательно из входного файла и записывает их последовательно в выходной файл, производя НМАХ серий длиной Р или больше (за исключением последней серии).

Имеется Р > 2 узлов Х[0),..., Х[Р— 1] с полями, описанными выше. Н1. [Начальная установка.) Установить НИАХ < — О, НС е — О, ЕАБТКЕТ е — сю, Ц е— ЕОС(Х[0)) и НЦ +- О. (ВС вЂ” номер текущей серии, а ЕАЯТКЕТ вЂ” - ключ последней выведенной записи. Начальное значение ЕАБТКЕУ должно быть больше любого возможного ключа; см. упр, 8.) Для 0 < у ( Р, если обозначить Б = 1ОС(Х[у)), начальное содержимое Х[у) установить следующим образом: 1ОБЕН(У) <- т; РЕ(1) < — 10С(Х[[(Р+у)/2)]); НМ(Б) +- 0; Р1(Б) < — ЕОС(Л[Я2])). (Установка ЕОБЕН(Б) и НМ(1) представляет собой искусственный способ образования начального дерева путем рассмотрения фиктивной серии с номером О, которая никогда не выводится. Это — своего рода трюк; см.

упр. 10.) В.2. [Конец'серии?] Если ВЦ = ВС, то перейти к шагу ВЗ. (В противном случае НЦ = НС+ 1 и обработка серии с номером ВС завершена. Здесь следует выполнить те специальные действия, которые соответствуют схеме слияния для последующих этапов сортировки.) Если ВЦ > НМАХ, то выполнение алгоритма завершено; в протинном случае установить НС е- НЦ.

гьЗ. [Вывод вершины дерева.] (Сейчас Ц указывает на 'чемпиона" и ВЦ вЂ” номер его серии.) Если НЦ ~ О, то вывести БЕСОВО(Ц) и установить 1АБТКЕТ е- КЕТ(Ц). В.4. [Ввод новой записи.) Если входной файл ис серпан, установить НЦ + — НМАХ+ 1 и перейти к шагу В5. В противном случае поместить новую запись из входного файла в БЕСОВО(Ц). Если КЕТ(Ц) < ЕАБТКЕТ (т. е. эта запись не принадлежит текущей серии), то НЦ < — НЦ+1, и теперь, если НЦ > НМАХ, установить ВМАХ е — НЦ. Н5. [Подготовка к изменению.) (Сейчас Ц указывает на новую запись с номером серии ВЦ.) Установить Т < — РЕ(Ц).

(Т вЂ”. переменный указатель, который будет двигаться по дереву,) В6. )Установка нового проигравшего.) Если Нй(Т) ( НЦ илн если НИ(Т) = НЦ и КЕ7(РОБЕН(Т) ) < КЕТ(Ц), то поменять местами ЕОБЕН(Т) е+ Ц, Нн(Т) ~-> НЦ. (В переменных Ц и НЦ запоминается текущий победитель и номер его серии.) В7. (Сдвиг вверх.) Если Т = 1.ОС(Х~1)), то вернуться к шагу Н2; в противном случае Т < — Р1(Т) и следует вернуться к Вб.

$ В алгоритме 11 говорится о вводе и выводе записей по одной, тогда как практически лучше считывать и записывать относительно большие блоки записей. Следовательно, на самом деле за кулисами прячутся буфера ввода и вывода; их присутствие в памяти приводит к уменьшению значения Р. Это будет пояснено в разделе 5.4.6. ьПреобразование серий с звдержкай. В работе й.

Я. Пшвшогег САСМ 8 (1965), 48, предложено интересное усовершенствование метода выбора с замещением, использующее понятие, которое будем называть степенью свободы. Как мы видели, в каждом блоке записей, находящемся на ленте в составе серии, содержатся записи в порядке неубывания, так что первый элемент - — наименьший, а последний — наибольший. В обычном процессе выбора с замещением наименьший элемент каждого блока в некоторой серии вгегда не меньше наибольшего элемента в предььтущем блоке данной серии.

Это соответствует "первой степени свободы". Динсмор предложил ослабить такое условие до "т степеней свободы"; новое условие не требует, чтобы наименьший элемент каждого блока был не меньше, чем наибольший элемент предыдущего блока, но он гге должен быть меньше ноибольипгх элементов кагсихлибо ггг ггредмдйи(их блоков той же серии. Записи в отдельном блоке упорядочены, как и ранее, но соседние блоки не обязаны быть взаимно упорядоченными. Предположим, например, что в блоках содержится только по две записи. Приведенная ниже последовательность блоков является серией с тремя степенями свободы: ( 08 50 ( 06 90 ! 17 27 ! 42 67 ( 51 89 ) Следующий блок, который может быть частью этой серии, должен начинаться с элемента, не меньшего, чем третий по порядку элемент множества 150, 90, 27,67, 89), считая от наибольшего, т.

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

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

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

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