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

На каждом проходе находим минимальный элемент в несортированной части и перекладываем его в результат.

type
  TAI = array of integer;
...
procedure SelectionSort(var A: TAI);
var
    i,j : integer;
    minV, minI : integer; // Найденный минимум.
begin
  for i:= Low(A) to High(A) do
  begin
    minV := A[i];
    minI := i;
    for j := i+1 to High(A) do
    begin
      if A[j] i then
      swap(A[i], A[minI]);
  end;
end;

 

Сложность:

Максимальная O(N2)
Минимальная O(N2)
Средняя O(N2)