В сортировке посредством выбора основная идея состоит в том, чтобы
идти по шагам $$i = 1,2,\ldots,n$$, находя $$i$$ -е
наибольшее (наименьшее)
имя и помещая его на его место на $$i$$ -ом шаге. Простейшая форма

Несмотря на неэффективность алгоритма 15.1, идея выбора может привести
и к эффективному алгоритму сортировки. Весь вопрос в том, чтобы найти
более эффективный метод определения $$i$$ -го наибольшего имени, чего
можно добиться, используя механизм
Идея
Заметим, что в пирамиде наибольшее имя должно находиться в корне и, таким образом, всегда в первой позиции массива, представляющего пирамиду. Обмен местами первого имени с $$n$$ -м помещает наибольшее имя в его правильную позицию, но нарушает свойство пирамидальности в первых $$n - 1$$ именах. Если мы можем сначала построить пирамиду, а затем эффективно восстановить ее, то все в порядке, так как тогда можно производить сортировку следующим образом: построить пирамиду из $$x_1,x_2,\ldots,x_n$$,

Это общее описание

(рис 15.2) Использование турнира с выбыванием для отыскания наибольшего имени.Путь наибольшего имени показан жирной линией(рис 15.1) Отыскание второго наибольшего имени путем замены
наибольшего имени на $$- \infty$$. Проведение повторного сравнения имен, побежденных
наибольшим именем
Процедура

Переписывая это итеративным способом и дополняя деталями, мы получим алгоритм 15.2.


(рис 15.3) Алгоритм 15.3.Пирамидальная сортировкаОбсуждаемый здесь алгоритм сортировки отличается от рассматривавшихся до
сих пор тем, что он основан не на сравнениях между именами, а на представлении
имен. Мы полагаем, что каждое из имен $$x_1,x_2,\ldots,x_n$$ имеет
вид$$x_i = (x_{i,p},x_{i,p - 1},\ldots,x_{i,1} )$$
и их нужно отсортировать в возрастающем
Цифровая распределяющая сортировка основана на наблюдении, что если имена уже отсортированы по младшим разрядами $$l,l - 1,\ldots,1$$, то их можно полностью отсортировать, сортируя только по старшим разрядам $$p,p - 1,\ldots,i + 1$$ при условии, что сортировка осуществляется таким образом, чтобы не нарушить относительный порядок имен с одинаковыми цифрами в старших разрядах. Заметим, что к самой таблице обращаются по правилу "первым включается – первым исключается", и поэтому лучшим способом представления являются очереди. В частности, предположим, что с каждым ключом $$x_i$$ ассоциируется поле связи $$LINK_i$$ ; тогда эти поля связи можно использовать для сцепления всех имен в таблице вместе во входную очередь $$Q$$. При помощи полей связи можно также сцеплять имена в очереди $$Q_0,Q_1,\ldots,Q_{r - 1}$$, используемые для представления стопок. После того как имена распределены по стопкам, очереди, представляющие эти стопки, связываются вместе для получения вновь таблицы $$Q$$. Алгоритм 15.4. представляет эту процедуру в общих чертах (очереди описаны в лекции 11). В результате применения алгоритма очередь $$Q$$ будет содержать имена в порядке возрастания; то есть имена будут связаны в порядке возрастания полями связи, начиная с головы очереди $$Q$$.
Использовать поля связи $$LINK_1,\ldots LINK_n$$ для формирования $$x_1,\ldots,x_n$$ во входную очередь $$Q$$

В методах сортировки, обсуждавшихся в предыдущем разделе, мы полагали, что
таблица умещается в быстродействующей внутренней памяти. Хотя для большинства
реальных задач обработки данных это предположение слишком сильно, оно, как
правило, выполняется для комбинаторных алгоритмов. Сортировка обычно
используется только для некоторого сокращения времени работы алгоритмов, в
которых сортировка применяется только для некоторого сокращения времени работы
алгоритмов, когда оно недопустимо велико даже для задач
"умеренных" размеров.
Например, часто бывает необходимо сортировать отдельные предметы во времени
исчерпывающего поиска (лекция 13), но поскольку такой поиск обычно требует
экспоненциального времени, маловероятно, что подлежащая сортировке таблица
будет
настолько большой, чтобы потребовалось использование запоминающих устройств.
Однако задача сортировки таблицы, которая слишком велика для основной памяти,
служит хорошей иллюстрацией работы с данными большого объема, и поэтому в этом
разделе мы обсудим важные идеи
Общей стратегией в такой
Самый очевидный метод для получения исходных отрезков состоит в том, что
можно просто считывать $$(t + 1)$$ -ю ленту $$m$$ имен,
рассортировывать их во внутренней памяти и записывать их на ленту в виде
отрезка, продолжая процесс до тех пор, пока не будут исчерпаны все имена. Все
полученные таким образом исходные отрезки содержат $$m$$ имен
(исключая, возможно, последний отрезок). Поскольку число исходных отрезков
в конце концов определяет время слияния, мы хотели бы найти некоторый метод
образования более длинных исходных отрезков и, следовательно, меньшего их
количества. Это можно сделать, используя для сортировки идею турнира
(
Порождение исходных отрезков продолжается следующим образом. Из входной
ленты считываются первые $$m$$ имен, и затем из них формируется
пирамида, как описано выше. Наименьшее
имя выводится как первое в первом отрезке и заменяется в пирамиде следующим
именем из входной ленты в соответствии с алгоритмом 15.2. модифицированным
так,
чтобы для восстановления пирамиды следить за наименьшим, а не за наибольшим
именем. Процесс, известный как
Разумный путь реализации этой процедуры состоит в том, чтобы рассматривать каждое имя $$x$$ как пару $$(r,x)$$, где $$r$$ есть номер отрезка, в котором находится $$x$$. Иначе говоря, считается, что пирамида состоит из пар $$(r_1,x_1 ),(r_2,x_2 ),\ldots,(r_m,x_m )$$ ; сравнения между парами осуществляются лексикографически. Когда считывается имя, меньшее последнего имени в текущем отрезке, оно должно быть в следующем отрезке, и благодаря наличию номера отрезка это имя будет ниже всех имен пирамиды, которые входят в текущий отрезок.
Порождает ли этот
После того, как порождены исходные отрезки, возникает задача повторного
распределения их по
Ранее мы изучали проблему полного упорядочения множества имен, не имея
Как при данных именах $$x_1,x_2,\ldots,x_n$$ можно найти $$k$$ -е из наибольших в порядке убывания? Задача, очевидно, симметрична: отыскание $$(n - k + 1)$$ -го наибольшего ( $$k$$ -го наименьшего) имени можно осуществить, используя алгоритм отыскания $$k$$ -го наибольшего, но меняя местами действия, предпринимаемые при результатах < и >сравнения имен. Таким образом, отыскание наибольшего имени $$(k = 1)$$ эквивалентно отысканию наименьшего имени $$(k = n)$$ ; отыскание второго наибольшего имени $$(k = 2)$$ эквивалентно отысканию второго наименьшего $$(k = n - 1)$$ и т.д.
Конечно, все перечисленные варианты задачи выбора можно решить, используя любой из методов полной сортировки имен и затем тривиально обращаясь к $$k$$ -му наибольшему. Такой подход потребует порядка $$n\log n$$ сравнений имен независимо от значений $$k$$.
При использовании алгоритма сортировки для выбора наиболее подходящим
будет один из алгоритмов, основанных на выборе: либо простая сортировка выбором
(алгоритм 15.1) либо
Вторым направлением исследования частичной сортировки является задача слияния двух отсортированных таблиц $$x_1 \leqslant x_2 \leqslant \ldots \leqslant x_n$$ и $$y_1 \leqslant y_2 \ldots \leqslant y_m$$ в одну отсортированную таблицу $$z_1 \leqslant z_2 \leqslant \ldots \leqslant z_{n + m}$$. Существует очевидный способ это сделать: таблицы, подлежащие слиянию, просматривать параллельно, выбирая на каждом шаге меньшее из двух имен и помещая его в окончательную таблицу. Этот процесс немного упрощается добавлением имен-сторожей $$x_{n + 1} = y_{m + 1} = \infty$$, как в алгоритме 15.5. В этом алгоритме $$i$$ и $$j$$ указывают, соответственно, на последние имена в двух входных таблицах, которые еще не были помещены в окончательную таблицу.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.