Сортировка выбором | Язык Паскаль

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

Требуется отсортировать массив по возрастанию методом сортировки выбором.

Для этого можно воспользоваться следующим алгоритмом.

  1. Найти максимальный элемент (max) в массиве (arr).
  2. Поместить его на последнее место (j).
  3. Элемент, находившийся в конце массива переместить на место, где прежде находился max.
  4. Уменьшить просматриваемую область массива на единицу (j – 1).
  5. Снова найти максимальный элемент в оставшейся области.
  6. Поместить его в конец просматриваемой области массива.
  7. и так далее.

Программа на языке Паскаль:

const n = 10;
 
var
    arr: array[1..n] of byte;
    max, id_max, i, j: byte;
 
begin
    randomize;
    for i := 1 to n do begin
        arr[i] := random(256);
        write(arr[i]:4)
    end;
    writeln;
 
    j := n;
 
    while j > 1 do begin
        max := arr[1];
        id_max := 1;
        for i := 2 to j do
            if arr[i] > max then begin
                max := arr[i];
                id_max := i
            end;
        arr[id_max] := arr[j];
        arr[j] := max;
        j := j - 1
    end;
 
    for i := 1 to n do
        write(arr[i]:4);
 
end.