Батчерная сортировка слиянием нечет-чет
![]() Визуализация сети сортировки слиянием нечет-чет с восемью входами | |
Сорт | Алгоритм сортировки |
---|---|
Структура данных | Множество |
Худшая производительность | параллельное время |
Лучшая производительность | параллельное время |
Средняя производительность | параллельное время |
Наихудшая пространственная сложность | непараллельное время |
Оптимальный | Нет |
Нечетно-четная сортировка слиянием Бэтчера [ 1 ] — это общая конструкция, разработанная Кеном Бэтчером для сортировки сетей размера O( n (log n ) 2 ) и глубина O((log n ) 2 ), где n — количество элементов, подлежащих сортировке. Хотя он и не является асимптотически оптимальным, Кнут пришел к выводу в 1998 году относительно сети AKS , что «метод Бэтчера намного лучше, если только n не превышает общий объем памяти всех компьютеров на земле!» [ 2 ]
Его популяризирует вторая книга GPU Gems , [ 3 ] как простой способ достаточно эффективной сортировки на оборудовании для обработки графики.
Псевдокод
[ редактировать ]Возможны различные рекурсивные и итеративные схемы расчета индексов сравниваемых и сортируемых элементов. Это один из итеративных методов создания индексов для сортировки n элементов:
# note: the input sequence is indexed from 0 to (n-1)
for p = 1, 2, 4, 8, ... # as long as p < n
for k = p, p/2, p/4, p/8, ... # as long as k >= 1
for j = mod(k,p) to (n-1-k) with a step size of 2k
for i = 0 to min(k-1, n-j-k-1) with a step size of 1
if floor((i+j) / (p*2)) == floor((i+j+k) / (p*2))
compare and sort elements (i+j) and (i+j+k)
Также возможен нерекурсивный расчет индекса узла-партнера. [ 4 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Бэтчер, Кен (1968), «Сортирующие сети и их приложения» , Материалы весенней совместной компьютерной конференции AFIPS '68 (весна), 30 апреля — 2 мая 1968 г. , Атлантик-Сити, Нью-Джерси: Ассоциация вычислительной техники. , стр. 307–314, дои : 10.1145/1468075.1468121 , S2CID 207171031 , заархивировано из оригинала 24 октября 2020 г.
- ^ Д. Е. Кнут . Искусство компьютерного программирования , Том 3: Сортировка и поиск , Второе издание. Аддисон-Уэсли, 1998. ISBN 0-201-89685-0 . Раздел 5.3.4: Сети сортировки, стр. 219–247.
- ^ «Глава 46. Улучшенная сортировка GPU» .
- ^ «Сортировочная сеть на основе слияния чет-нечет Бэтчера: расчет партнеров» . Ренат Бекболатов . Проверено 7 мая 2015 г.
Внешние ссылки
[ редактировать ]- Сортировка слиянием «нечет-чет» на сайте hs-flensburg.de
- Генератор сети сортировки слиянием нечетно-четного Генератор сети сортировки слиянием на основе нечетно-четного от Interactive Batcher.