Сортировка сетевых свопов на 64 элемента - PullRequest
1 голос
/ 06 февраля 2020

Я пытаюсь использовать Сортировка сети в C программе для сортировки небольшого списка A из n элементов. Сортировочная сеть состоит из SWAP(x, y) макросов, каждый из которых сравнивает два элемента A[x] и A[y] и заменяет их при необходимости. Этот веб-сайт создает последовательность макросов SWAP(x, y) для сортировки n <= 32 элементов.

Теперь я ищу последовательность SWAP(x, y) для сортировки n = 64 элементов. На данный момент я не уверен, что Sorting Network будет быстрее, чем использование других алгоритмов сортировки для n = 64 элементов, но я протестировал это sh. Мой вопрос: есть ли веб-сайт / бумага / проект, который перечисляет эту последовательность? Или есть какой-нибудь алгоритм для генерации для n = 64 из Сортировочных сетей для n <= 32?

Спасибо.

1 Ответ

0 голосов
/ 06 февраля 2020

Это связано со смещением кругового массива (подход № 3 в https://leetcode.com/articles/rotate-array/#)

Существуют алгоритмы для определения последовательности, например Алгоритм Бозе-Нельсона (https://metacpan.org/pod/Algorithm :: Networksort ), реализация C находится в https://github.com/atinm/bose-nelson/blob/master/bose-nelson.c

...