Алгоритм сортировки выбором
Сущность алгоритма заключается в выборе на каждом шаге его работы наименьшего элемента из оставшихся. На первом шаге это выбор осуществляется из всего массива, а найденное значение ставится в первую позицию. На втором шаге первый элемент исключается из рассмотрения, а найденный наименьший ставится во вторую позицию, на следующем шаге из рассмотрения исключается уже два первых элемента и т.д.
Алгоритм
Очередной Номер =1
Пока Очередной Номер <= Количеству элементов массив Делать
Из подмассива ( Очередной Номер, Количество элементов) выбрать наименьший
Наименьший поменять местами с элементом чей номер = Очередному Номеру
Очередной номер = Очередной номер + 1
Текст программы:
MODULE example;
IMPORT In, StdLog;
PROCEDURE Sort*;
VAR
a:ARRAY 100 OF INTEGER;
N,i,k,min,c:INTEGER;
BEGIN
In.Open;
N:=-1;
REPEAT
N:=N+1;
In.Int(a[N]);
UNTIL ~In.Done;
FOR i:=0 TO N-2 DO
min:=i;
FOR k:=i+1 TO N-1 DO
IF a[min]>a[k] THEN
min:=k;
END;
END;
c:=a[min];a[min]:=a[i];a[i]:=c;
END;
FOR i:=0 TO N-1 DO
StdLog.Int(a[i]);
END;
END Sort;
END example.