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