stringtranslate.com

Сортировка слиянием «чет-нечет» (Batcher)

Сортировка Батчера по нечетному и четному слиянию [1] — это общая конструкция, разработанная Кеном Батчером для сортировки сетей размером O( n  (log  n ) 2 ) и глубиной O((log  n ) 2 ), где n — количество сортируемых элементов. Хотя она не является асимптотически оптимальной, в 1998 году Кнут пришел к выводу относительно сети AKS , что «метод Батчера намного лучше, если только n не превышает общую емкость памяти всех компьютеров на Земле!» [2]

Он популяризирован во второй книге GPU Gems [3] как простой способ выполнения достаточно эффективной сортировки на оборудовании для обработки графики.

Псевдокод

Возможны различные рекурсивные и итерационные схемы для вычисления индексов сравниваемых и сортируемых элементов. Это один из итерационных методов генерации индексов для сортировки n элементов:

# примечание: входная последовательность индексируется от 0 до (n-1)для p = 1, 2, 4, 8, ... # пока p < n для k = p, p/2, p/4, p/8, ... # пока k >= 1 для j = mod(k,p) до (n-1-k) с размером шага 2k для i = 0 до min(k-1, njk-1) с шагом 1 если пол((i+j) / (p*2)) == пол((i+j+k) / (p*2)) сравнить и отсортировать элементы (i+j) и (i+j+k)

Также возможен нерекурсивный расчет индекса узла-партнера. [4]

Смотрите также

Ссылки

  1. ^ Batcher, Ken (1968), «Сортировочные сети и их приложения», Труды весенней совместной компьютерной конференции 30 апреля — 2 мая 1968 г. — AFIPS '68 (весна) , Атлантик-Сити, Нью-Джерси: Ассоциация вычислительной техники, стр. 307–314, doi : 10.1145/1468075.1468121, S2CID  207171031, архивировано из оригинала 24.10.2020
  2. ^ DE Knuth . Искусство программирования , том 3: Сортировка и поиск , второе издание. Addison-Wesley, 1998. ISBN 0-201-89685-0 . Раздел 5.3.4: Сети для сортировки, стр. 219–247. 
  3. ^ «Глава 46. Улучшенная сортировка GPU».
  4. ^ "Сортировочная сеть из слияния нечетных-четных чисел Батчера: расчет партнеров". Ренат Бекболатов . Получено 7 мая 2015 г.

Внешние ссылки