Изменения

Перейти к: навигация, поиск

Сортирующие сети

2373 байта добавлено, 19:33, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{Определение
|definition =
Сеть называется '''сортирующей Сортирующая сеть''' (англ. ''Sorting network)''') — метод сортировки, если основанный только на сравнениях данных. Схематически изображается в результате её работы любая последовательность входных данных преобразуется виде параллельных прямых (проводов), соединенных вертикальными линиями (сравнивающими устройствами). Особенность сети сортировки в монотонно неубывающуютом, что сравнения выполняются независимо от предыдущих. Кроме того, сравнения могут выполняться одновременно.
}}
[[Image:Sorting-network-comparator-demonstration..png|thumb|130px|Сортирующая сеть с 2 проводами]]
{| cellpadding="3"
| || [[Файл:Network.png|thumb|right|350px|Схематическое изображение сортирующей сети для последовательности из 4 чисел. Глубина сети: 4. Размер сети: 5 ]] || [[Файл:Sort1.png|thumb|right|400px|Процесс сортировки числовой последовательности (3, 2, 4, 1)]]
|}
== Компараторы (сравнивающие устройства) ==
{{Определение
|definition =
'''Компаратор ''' (англ. ''Comparator)''' ) — устройство, подключенное к двум проводам, которое упорядочивает текущие значения на проводах.
}}
{| cellpadding="3"
| [[Файл:Comp1.png|thumb|500px|Компаратор, подключенный к проводам <tex>i, j</tex>. Входные данные: <tex>x, y</tex>. Выходные данные: <tex>\min(x, y), \max(x, y)</tex>.]]
|}
Обычно компараторы меньшее значение передают на провод с меньшим номером, но бывают и направленные компараторы, у которых указано направление перемещения.
 
{{Определение
|definition =
'''K-компаратор''' (англ. ''K-comparator'') — устройство, упорядочивающее значения на <tex>k</tex> проводах.
}}
 
{{Определение
|definition =
Пусть глубина входного провода сети равна нулю. Если глубины входных проводов компаратора равны <tex>x</tex> и <tex>y</tex>, то глубина его выходных проводов равна <tex>\max(x, y) + 1 </tex>. '''K-компаратор''Глубина компаратора' — устройство, упорядочивающее значения на ''(англ. 'k'Depth of comparator'' проводах) — величина, равная глубине его выходных проводов.
}}
Компараторы можно располагать в одном слоена одной глубине, если они подключены к разным проводам. В этом случае сравнения будут выполняться параллельно. == Сравнивающие сети Сети == Введем ряд определений, характеризующих сеть компараторов:
{{Определение
|definition =
'''Сравнивающая сетьСлой сети''' (англ. ''layer'') несколько множество компараторов, соединенных проводами. Используется для упорядочивания числовых последовательностейимеющих одинаковую глубину.
}}
{{Определение
|definition =
'''Глубина сети ''' (англ. ''depth)''' ) — количество слоев в сети.
}}
{{Определение
|definition =
'''Размер сети ''' (англ. ''size)''' ) — количество компараторов в сети.
}}
 
Для того, чтобы сортирующая сеть для <tex>n</tex> входов была корректна, она должна правильно сортировать все <tex>n!</tex> перестановок <tex>n</tex> различных чисел. Также можно сформулировать более сильное утверждение:
{{Теорема
== См.также ==
*[[Сортирующие сети для квадратичных сортировок]] *[[0-1 принцип]] *[[Сеть Бетчера]] 
== Источники информации==* [[wikipedia:Sorting_network | Wikipedia {{---}} Sorting network]]* Томас Х. Кормен Глава 28 Сортирующее сети, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн Алгоритмы: построение и анализ — 2-е изд. — М.: «Вильямс», 2007. — с. 799 — 805.— ISBN 5-8489-0857-4* [httpДональд Э. Кнут Искусство программирования. Том 3. Сортировка и поиск — 2-е изд. — М.://en«Вильямс», 2012.wikipedia— с. 238 — 242.org/wiki/Sorting_network Wikipedia — ISBN 0-201-89685- Sorting networks]0
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Сортирующие сети]]
1632
правки

Навигация