Сортировка выбором.

Добрый день Олег Виленович.Как-то на просторах инета один студент попросил помощи решить задачу "Отсортировать массив по возрастанию сортировкой выбором". Я написал код и отправил ему.
Но препод не принял моё решение и сказал что это не та сортировка.
В книгах и на различных сайтах нашёл нужный алгоритм,но он не тот что был в книге.
Вот как выполнена сортировка выбором:
Кто здесь прав и какой алгоритм верный?
- Код: Выделить всё
const
n=20;
type
tarray=array [1..20] of shortint;
var
arr:tarray;
procedure CreateArray;
var
i:byte;
begin
for i:=1 to n do
arr[i]:=random(61)-10;
end;
procedure PrintArray;
var
i:byte;
begin
for i:=1 to n do
write(arr[i],' ');
writeln; writeln;
end;
procedure SelectionSort;
var
l,r,t:byte;
begin
for l:=1 to n-1 do
for r:=n downto l+1 do
if arr[l]>arr[r] then begin
t:=arr[l];
arr[l]:=arr[r];
arr[r]:=t;
end;
end;
begin
randomize;
CreateArray;
writeln('До сортировки : ');
writeln;
PrintArray;
SelectionSort;
writeln('После сортировки : ');
writeln;
PrintArray;
readln;
end.
Но препод не принял моё решение и сказал что это не та сортировка.
В книгах и на различных сайтах нашёл нужный алгоритм,но он не тот что был в книге.
Вот как выполнена сортировка выбором:
- Код: Выделить всё
const
n=20;
type
tarray=array [1..20] of shortint;
var
arr:tarray;
procedure CreateArray;
var
i:byte;
begin
for i:=1 to n do
arr[i]:=random(61)-10;
end;
procedure PrintArray;
var
i:byte;
begin
for i:=1 to n do
write(arr[i],' ');
writeln; writeln;
end;
procedure SelectionSort;
var
i,j,m,t:integer;
begin
for i:=1 to n-1 do begin
m:=i;
t:=arr[i];
for j:=i+1 to n do
if t>arr[j] then begin
m:=j;
t:=arr[j];
end;
arr[m]:=arr[i];
arr[i]:=t;
end;
end;
begin
randomize;
CreateArray;
writeln('До сортировки : ');
writeln;
PrintArray;
SelectionSort;
writeln('После сортировки : ');
writeln;
PrintArray;
readln;
end.
Кто здесь прав и какой алгоритм верный?