индекс находился вне границ массива при выборочной сортировке

задачей сортировки является найти в массиве min и max, первый отправить влево, второй - вправо, и затем продолжить сортировать, не трогая крайние (поставленные) элементы. вот я не понимаю, как влетел в ошибку.

теперь выводится только исходный массив, а дальше программа работает бесконечно.

const n=10;
var a:array[1..n] of integer;
i,j,max,min,c,flag:integer;
begin
  for i:=1 to n do begin
    a[i]:=random(1000);
    write(a[i],' ')
  end;
  j:=0;
  max:=-1;
  min:=1000;
  repeat
    flag:=1; j:=j+1;
    for j:=1 to n-1 do begin
      for i:=1 to n-j do begin
        if a[i]<min then a[i]:=min; 
        if a[i]>max then a[i]:=max;
      end;
        c:=a[i];a[i]:=min;min:=c;
        c:=a[n-j];a[n-j]:=max;max:=c;
        flag:=2;
    end;
  until flag=1;
  writeln;
  for i:=1 to n do write(a[i],' ')
end.

Ответы (0 шт):