All pastes #483110 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-11 15:52 UTC
rendered paste body
Program SelectionSort(output);
const
  LO = 1;
  HI = 5;
type
  IntArrayType = array [LO..HI] of integer;

{ Selection sort procedure; Sorts an array of ints in ascending order }
procedure selection_sort(var intarray : IntArrayType; arrayLength : integer);
var
  current, j : integer;
  temp, large : integer;
begin
  for current := arrayLength downto 2 do
   begin
    large := 1;  { Initialize large to index of first element. }
    { Find the largest element between the positions 1 and current. }
    for j := 2 to current do
     begin
      if (intarray[j] > intarray[large]) then
        large := j;
     end;
    { Swap the largest element found with element in position current. }
    temp := intarray[large];
    intarray[large] := intarray[current];
    intarray[current] := temp;
   end
end;

{ Procedure that simply displays each element of intarray }
procedure display_array(intarray : IntArrayType; arrayLength : integer);
var
  i : integer;
begin

  for i := 1 to arrayLength do
    write(intarray[i]: 3);
  writeln;
end;

var
  nums : IntArrayType;
  nums_length : integer;

begin
  nums[1] := 20;
  nums[2] := 47;
  nums[3] := 17;
  nums[4] := 31;
  nums[5] := 34;
  nums_length := 5;

  writeln('Unsorted Array:');
  display_array(nums, nums_length);

  selection_sort(nums, nums_length);

  writeln('Sorted Array:');
  display_array(nums, nums_length)
end.