Сортировка двумерного масива (быстрая)
Подскажите, где ошибка пожалуйста? или может я немного не так мыслю ?
Р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;
оформите код по правилам, добавьте комментарии, смотреть невозможно