Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 16:48   #1
Cstln
 
Регистрация: 04.05.2013
Сообщений: 8
По умолчанию Вопрос по алгоритму

Это сортировка подсчётом:

Код:
uses crt;
Var A,B : array[1..1000] of integer;
N,i : integer;
t : longint;
Procedure Sort; 
Var C : array[0..9] of integer;
j : integer;
Begin
For j:=0 to 9 do
C[j]:=0;
For j:=1 to N do
C[(A[j] mod (t*10)) div t]:= C[(A[j] mod (t*10)) div t]+1; {Выделяем цифры, сначала последние}
For j:=1 to 9 do
C[j]:=C[j-1]+C[j]; 
For j:=N downto 1 do
begin
B[C[(A[j] mod (t*10)) div t]]:=A[j];
C[(A[j] mod (t*10)) div t] := C[(A[j] mod (t*10)) div t]-1;
end;
End;

Begin
randomize;
write('n=');
readln(n);
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(500)+1; {диапазо 1-500}
  write(a[i]:4);
 end;
writeln;
{сортировка данных}
t:=1;
for i:=1 to 5 do
begin
Sort;
A:=B;
t:= t*10;
end;
writeln('Отсортированный массив:');
for i:=1 to n do
write(a[i]:4);
End.
Если я здесь заменю в процедуре N downto 1 на 1 to N, то сортируется неверно. В чём проблема?
Cstln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фрагмент кода по алгоритму Студент8565 Помощь студентам 4 12.05.2013 17:42
блок-схемы к алгоритму ArleyKinn Помощь студентам 1 07.02.2012 20:18
Вопрос по алгоритму espifun Помощь студентам 1 16.04.2011 12:21
Код по алгоритму @Manya@ Общие вопросы C/C++ 1 23.04.2010 18:49