Сеть сортиро́вки (англ. sorting network) — класс алгоритмических методов сортировки, в которых последовательность сравнений не зависит от результатов предыдущих сравнений.

Простая сеть сортировки 4 элементов с 5 модулями компараторов. Справа показан процесс сортировки элементов <3,2,4,1>

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

Введение править

 
Механизм действия модуля компаратора в сети сортировки.

Сети вставки и выбора править

Возможно представление в виде сети сортировки различных алгоритмов внутренней сортировки.

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

 
Сеть сортировки, построенная на базе сортировки пузырьком
 
Сеть сортировки, построенная на базе сортировки вставками
 
Если разрешено использовать одновременные сравнения, обе сети становятся эквивалентными

Эффективность сетей править

Литература править

  • Дональд Кнут. Глава *5.3.4. Сети сортировки // Искусство программирования, том 3. Сортировка и поиск = The Art of Computer Programming, vol. 3. Sorting and Searching. — 2-е изд. — М.: «Вильямс», 2005. — С. 245 - 273. — ISBN 5-8459-0082-4.
  • Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн, Клифорд. Глава 27. Сортирующие сети // Алгоритмы: построение и анализ. — 2-e издание. — М.: «Вильямс», 2005. — С. 799 - 822. — ISBN 5-8459-0857-4.

Ссылки править