Комбинаторные алгоритмы для программистов

          

Цифровая распределяющая сортировка


Цифровая распределяющая сортировка основана на наблюдении, что если имена уже отсортированы по младшим разрядами

Цифровая распределяющая сортировка
, то их можно полностью отсортировать, сортируя только по старшим разрядам
Цифровая распределяющая сортировка
при условии, что сортировка осуществляется таким образом, чтобы не нарушить относительный порядок имен с одинаковыми цифрами в старших разрядах. Заметим, что к самой таблице обращаются по правилу "первым включается – первым исключается", и поэтому лучшим способом представления являются очереди. В частности, предположим, что с каждым ключом
Цифровая распределяющая сортировка
ассоциируется поле связи
Цифровая распределяющая сортировка
; тогда эти поля связи можно использовать для сцепления всех имен в таблице вместе во входную очередь
Цифровая распределяющая сортировка
. При помощи полей связи можно также сцеплять имена в очереди
Цифровая распределяющая сортировка
, используемые для представления стопок. После того как имена распределены по стопкам, очереди, представляющие эти стопки, связываются вместе для получения вновь таблицы
Цифровая распределяющая сортировка
. Алгоритм 15.4. представляет эту процедуру в общих чертах (очереди описаны в лекции 11). В результате применения алгоритма очередь
Цифровая распределяющая сортировка
будет содержать имена в порядке возрастания; то есть имена будут связаны в порядке возрастания полями связи, начиная с головы очереди
Цифровая распределяющая сортировка
.

Использовать поля связи

Цифровая распределяющая сортировка
для формирования
Цифровая распределяющая сортировка
во входную очередь
Цифровая распределяющая сортировка

Цифровая распределяющая сортировка

Алгоритм 15.4.Цифровая распределяющая сортировка



Содержание раздела