Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сортировка двумерного масива (быстрая)

60K
13 мая 2010 года
Y4enik
1 / / 13.05.2010
Вообщем, отсортировать двумерный масив за неспаданием алгоритмом быстрой сортировки (рекурсивным). Для одномерного все выходит, перехожу на двумерных - не сортирует.

Подскажите, где ошибка пожалуйста? или может я немного не так мыслю ?



Рrocedure Qsort_2 (l1,r1,l2,r2 :byte);
Var
B, tmp :integer;
i1,j1,
i2,j2 : byte;
begin
for k:=1 to m do
B:=A[k,(r1+r2+1) div 2 , (l1+l2+1) div 2];
i1:=l1;
i2:=l2;
j1:=r1;
j2:=r2;
while (j1<=((r1+r2+1) div 2)) and (((r1+r2+1) div 2)<=j2) do
begin
while A[k,j1,i1] < b do
if i1=p then
begin
inc(j1);
i1:=1;
end
else
inc(i1);
while A[k,j2,i2] > b do
if i2=1 then
begin
dec(j2);
i2:=p;
end
else
dec(i2);

begin
tmp:=A[k,j1,i1];
A[k,j1,i1]:=A[k,j2,i2];
A[k,j2,i2]:=tmp;
end;
if i1=p then
begin
i1:=1;
inc(j1);
end
else
inc(i1);
if i2=1 then
begin
i2:=p;
dec(j2);
end
else
i2:=i2-1;
end;
if j1>r1 then qsort_2 (l1,j1,l2,r2);
if j2<r2 then qsort_2 (l1,r1,l2,j2);
end;
14
14 мая 2010 года
Phodopus
3.3K / / 19.06.2008
оформите код по правилам, добавьте комментарии, смотреть невозможно
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог