Сеть Бетчера
Эта статья находится в разработке!
Определение
Сеть Бетчера (Batcher odd-even mergesort) - сортирующая сеть размером и глубиной , где - количество элементов для сортировки.
Конструирование сети
Для начала введем понятие битонической последовательности:
| Определение: |
| Битонической последовательностью называется последовательность, которая сначала монотонно возрастает, а затем монотонно убывает, или последовательность, которая приводится к такому виду путем циклического сдвига. |
В нашем случае мы будем рассматривать нуль-единичные битонические последовательности:
| Определение: |
| Нуль-единичные битонические последовательности - последовательности вида или для |
На первом этапе конструирования стоит задача построить сравнивающую сеть, которая будет сортировать любую нуль-единичную битоническую последовательность - битонический сортировщик.
Битонический сортировщик состоит из нескольких каскадов, каждый из которых называется полуфильтром (half-cleaner). Каждый полуфильтр - сравнивающая сеть глубиной 1, в которой -й входной провод сравнивается со входным проводом с номером , где .
| Лемма: |
Если на вход в полуфильтр подать битоническую последовательность из нулей и единиц длиной , то на выходе мы получим две битонические последовательности длиной такие, что каждый элемент из верхней последовательности не превосходит любой элемент из нижней, и что одна из них будет однородной (clean) - состоящей либо из нулей, либо из единиц. |