Сеть сортировки

Сеть сортиро́вки (англ. 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.

Ссылки


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.