Цифровая сортировка (DigidalSort)

Пусть нужно отсортировать массив по возрастанию, а на вход поступают числа в диапазоне [-100;100]. При этом их количество настолько большое, что не поможет даже быстрая сортировка. Выходом служит так называемая цифровая сортировка. Возьмем
a:array[-100..100] of integer

Предварительно обнулим его.
for i:=-100 to 100 do
 a[i]:=0;

Или
fillchar(a,sizeof(a),0)
для пишущих на Delphi
Каждая ячейка a будет хранить количество повторений числа i Получаем: [PAS]var a:array[-100..100] of integer; i,n,c,j:integer; begin readln(n); for i:=1 to n do begin read(c); inc(a[c]); end; for i:=-100 to 100 do for j:=1 to a[i] do write(i,' '); readln end.
Теги:
сортировка, DigidalSort
Добавлено: 22 Сентября 2013 12:35:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...