ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.01.2021
Просмотров: 393
Скачиваний: 3
В листинге 7.8 приведен пример сортировки методом подсчета.
Листинг 7.8. Сортировка подсчетом
procedure SortMove(var a,b: TData);
var
i,j: integer;
cnt: array[1..N] of integer; // массив счетчиков
begin
for i:=1 to N do cnt[i]:=1; // инициализация массива счетчиков
for i:=1 to N do // сравнение элементов
for j:=i+1 to N do // и заполнение массива счетчиков
if a[i]>a[j] then
cnt[i]:=cnt[i]+1
else
cnt[j]:= cnt[j]+1;
for i:=1 to N do //пересылка элементов в новый массив
b[cnt[i]]:=a[i];
end;
Число сравнений в сортировке подсчетом C~N2, число пересылок (из исходного массива в новый) M=N. Сортировка устойчивая. Алгоритм дает правильный результат независимо от числа равных ключей.