Основы программирования на языке Turbo Pascal. Беляева И.В. - 39 стр.

UptoLike

Составители: 

39
Процесс сортировки
0: 1 3 0 9 2 min=a[3]=0 Переставляем a[1]<->a[3]
1: 0|3 1 9 2 min=a[3]=1 Переставляем a[2]<->a[3]
2: 0 1|3 9 2 min=a[5]=2 Переставляем a[3]<->a[5]
3: 0 1 2|9 3 min=a[5]=3 Переставляем a[4]<->a[5]
4: 0 1 2 3 9 Готово
Здесь знак | отделяет уже отсортированную часть массива от еще не
отсортированной.
На Turbo Pascal этот алгоритм будет выглядеть следующим образом:
Var
Buf : integer; {Через buf будем менять значения двух
элементов массива}
imin : IndexEl; {Индекс минимального элемента
неотсортированной части массива}
Begin
{n-1 раз ищем минимальный элемент массива}
for I := 1 to n - 1 do
begin
{Ищем минимальный элемент в несортированной
части массива (от i-го элемента)}
imin := i;
for j := I + 1 to n do
if A[j] < A[imin] then imin := j;
{Переставляем i-й и imin-й элементы}
buf := A[i];
A[i] := A[imin];
A[imin] := buf;
End;