**Example Code:**
procedure selection( var a : anarray; N : integer);
var i, j, min : integer;
begin
for i := 1 to N-1 do
begin
{Elements from 1 to i-1 are in the correct place}
min := i;
for j := i+1 to N do
if a[j] < a[min] then min := j;
swap(a[i], a[min]);
{Elements from 1 to i are in the correct place}
end;
end;

Back to Sorting Algorithms