Упорядочить массив по неубыванию методом подсчета- Pascal(Паскаль)

uses crt;
var a,b:array[1..1000] of byte;
    c:array[byte] of integer;
    max:byte;
    n,i:integer;
Begin
randomize;
write('Размер массива n=');
readln(n);
write('Максимальное число в массиве до 255 max=');
readln(max);
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(max+1);
  write(a[i],' ');
 end;
writeln;
writeln;
for i:=0 to max  do
c[i]:=0;
for i:=1 to n do
c[a[i]]:=c[a[i]]+1;
for i:=1 to 255 do
c[i]:=c[i-1]+c[i];
for i:=n downto 1 do
 begin
  b[c[a[i]]]:=a[i];
  c[a[i]]:=c[a[i]]-1; {здесь мы избегаем возможности записи двух одинаковых чисел в одну ячейку}
 end;
{Вывод массива B}
writeln('Отсортированный массив:');
for i:=1 to n do
write(b[i],' ');
readln
end.

Leave a Comment

− 1 = 4