Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы / Глава 4_Сорт.doc
Скачиваний:
108
Добавлен:
15.02.2015
Размер:
1.85 Mб
Скачать

4.6. Аппаратная сортировка (Сортирующие сети)

К сортирующим сетям (или сетям сортировки) относят класс методов упорядочения, реализация которых опирается на специальные технические устройства и не зависит от предыстории сравнений: план сравнений изначально фиксирован и не меняется в процессе сортировки. Если произведено сравнение ключей и, то дальнейшая процедура упорядочения стандартна дляи.

Сортирующая сеть составляется из компараторов («сравнивателей») ― устройств, имеющих два входа для пары сравниваемых чисел и два выхода. Левый выход предназначен для большего значения , а правый для большего(рис. 28). Вместо терминакомпаратор употребляют также термин модуль компаратора, когда обсуждается не его техническое исполнение, а логическая схема алгоритма сортировки. Сети сортировки допускают эффективную аппаратную реализацию.

Вход

k2

Вход

k1

Выход

Выход

max(k1,k2)

min(k1,k2)

Рис. 28.

Рассмотрим принцип действия сортирующей сети на примере сортировки четырёх ключей с помощью сети из пяти компараторов, соединённых в соответствии с рис. 29. Компаратор (а) сравниваети. На его верхнем выходе оказывается ключ , а на правом ― ключ. Следующий компаратор (б) аналогичным образом имеет на входе ключии, а на его выходах в таком же порядке оказываются и.

K1=48

10

10

10

K1=10

48

31

22

22

K1=31

22

22

31

31

K1=22

31

48

48

Рис. 29.

Далее на входы компаратора (в) подаются и, а на выходах оказываются: на верхнем, который является наименьшим из всех четырёх, а на правом ― . Аналогично, на входы компаратора (г) подаютсяи,а на выходах оказываются: на верхнем — , а на нижнем ― , который является наибольшим из всех четырёх.

Теперь остаётся неопределённым положение двух средних элементов относительно друг друга. Поэтому на вход компаратора (д) подаются и; на его верхнем выходе оказывается второй по величине ключ, а на нижнем ― третий. Выходы компараторов (в), (г), и (д) содержат полностью упорядоченный набор исходных ключей.

Количество компараторов называется размером сортирующей сети, а максимальное число компараторов, проходимое одним входным элементом ― её глубиной.

Скорость сортировки повышается, если одновременно выполняются операции сравнения неперекрывающихся пар на одной и той же глубине. Так при сортировке четырёх элементов параллельно могут выполняться первое и второе сравнения, а также третье и четвёртое.

Для проверки того, что построенная сеть будет сортировать все возможные входные последовательности достаточно проверить правильность сортировки на всех возможных перестановках множества, поскольку для сортировки важны не конкретные значения ключей, а соотношения больше/меньше между ними. Фактически же можно обойтись существенно меньшим числом изпроверок (при, ирастёт значительно быстрее, чем:

):

Теорема (двоичный принцип1). Если сеть с входами правильно сортирует все последовательности из нулей и единиц, то она сортирует в таком же порядке любую последовательность изключей ([9], с. 249]).

Минимально возможный размер сети для сортировки элементов априори не известен и является предметом специального исследования для каждого конкретного значения.

1Его называют также «принцип нулей и единиц»

111