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

 

Находится наибольший элемент вмассиве из N элементов (пусть он имеет номер р) и меняется местами с элементом, стоящим на N-м месте, при условии, что N<>p. Из оставшихся (N-1) элементов снова выделяется наибольший и меняется местами с элементом, стоящим на (N-1)-м месте и т. д. Алгоритм заканчивает свою работу, когда элементы, стоящие на 1-м и 2-м местах в массиве, будут упорядочены (для этого понадобится N-1 "проход" алгоритма). Аналогично данный алгоритм можно применять и к наименьшим элементам.

Пример: отсортировать массив А(1..N) по возрастанию.

program sort);

var a : array[1..n] of Real;

var i, j, min, vsp : integer;

begin

for i := 1 to n - 1 do

begin

min:=i;

for j := i+1 to n do

if a[j]<a[min] then min := j;

vsp:=a[i]; a[i]:=a[min]; a[min]:=vsp;

end;

end;