0-1 принцип
Есть два способа проверить сеть из компараторов на то, что она сортирующая.
Первый способ
Первый, наивный способ — перебрать все перестановки из элементов, пропустить их через сеть и проверить их на то, что они отсортированы. Этот подход потребует действий, где — количество компараторов в сети из элементов. Это количество можно оценить как (Сеть Бетчера). Таким образом, получаем асимптотику , и при проверить сеть очень проблематично.
Второй способ
Второй способ основывается на предположении, что если сеть сортирует все последовательности из нулей и единиц, то сеть является сортирующей. Если мы докажем это, то сможем проверять сеть за , что намного быстрее.
Доказательство 0-1 принципа
| Определение: | 
| Функция называется монотонной (англ. monotonous), если | 
| Лемма: | 
| Пусть  — монотонная. Тогда . | 
| Доказательство: | 
| Не теряя общности, предположим что . Тогда . Также, по монотонности, . Тогда . То есть,. Такие же рассуждения можно провести для случая . | 
| Определение: | 
| Рассмотрим отображение и последовательность . Определим как последовательность , то есть | 
| Лемма: | 
| Пусть  — монотонная, а  — сеть компараторов.
Тогда  и  коммутируют, то есть . Другими словами, неважно, применить сначала  к  и пропустить через сеть , или пропустить через сеть  последовательность , а потом применить монотонную функцию . | 
| Доказательство: | 
| Рассмотрим произвольный компаратор , сортирующий элементы и . Применим его к последовательности и рассмотрим элемент с индексом . Тогда 
 | 
| Теорема (0-1 принцип): | 
| Если сеть компараторов сортирует все последовательности из нулей и единиц, то она сортирующая | 
| Доказательство: | 
| Рассмотрим сеть , сортирующую в возрастающем порядке: . Предположим, что есть последовательность , которую сеть не сортирует. Тогда после пропуска через сеть , получим последовательность , в которой найдется индекс такой, что .Рассмотрим функцию . Очевидно, она монотонная. Заметим, что , а , то есть , или — не отсортирована. Так как и коммутируют, — также не отсортирована. Но по предположению теоремы, все последовательности из нулей и единиц сеть сортировать умеет, то есть такой последовательности не найдется, то есть сеть компараторов является сортирующей. | 
См. также
Источники информации
- Bachelor-Studiengang Angewandte Informatik — Sorting networks
- Wikipedia — Sorting networks
- Дональд Кнут — Искусство программирования — Том 3 — Глава 5.3.4 — стр. 249
