4. Обменная поразрядная сортировка
Данный метод использует двоичное
представление ключей. Файл сортируется
последовательно по битам двоичного
представления ключей, начиная со
старшего. Ключи, имеющие значение данного
бита, равное нулю, ставятся в левую
половину файла, а ключи со значением
бита 1 - в правую. Ниже приведена схема
алгоритма поразрядной сортировки.
Функция b(ключ) возвращает значение с
номером b аргумента, m - максимальное
количество значащих битов в ключах.
5. Параллельная сортировка Бэтчера
Для получения алгоритма обменной
сортировки, время работы которого
меньше, чем N, необходимо выбирать для
сравнения и обмена ключи, расположенные
возможно дальше друг от друга. Эта идея
уже была реализована в алгоритме
сортировки Шелла вставок с убывающим
шагом, однако в данном алгоритме сравнения
выполняются по-другому. Рассмотрим
схему алгоритма. Здесь t= <logN> -
наименьшее целое,
равное или превышающее
logN ( N>=2). Переменная d имеет смысл
шага
сортировки, то есть сравниваются
ключи K[i] и K[i+d]. Через <-> обозначена
операция обмена значений двух переменных.
На схеме алгоритма через & обозначена
операция поразрядного И, то есть
выполнение условия i&p = r означает, что
в цикле по i нужно выбирать только такие
значения i, которые в одном разряде,
изменяющемся в цикле по p (операция p=p/2
имеет смысл сдвига начального значения
1 в разряде (t-1), имеют сначала значение
0 (поскольку r=0), а затем 1 (поскольку r=p).