PROGRAM Selection_Sort;
CONST len = 12;
TYPE intarray = ARRAY[1..len] OF INTEGER;
FUNCTION ssort (A: intarray): intarray;
VAR
at, i, j, smaller, tmp: integer;
newarray: intarray;
BEGIN
{ copy array }
FOR i:=1 TO len DO
newarray[i] := A[i];
{ sort }
FOR i:=1 TO len-1 DO
BEGIN
smaller := newarray[i];
at := i;
FOR j:=i+1 TO len DO
BEGIN
IF newarray[j] < smaller THEN
BEGIN
smaller := newarray[j];
at := j;
END
END; { FOR j:=i+1 }
IF newarray[i] > smaller THEN
BEGIN { swap }
tmp := newarray[i];
newarray[i] := smaller;
newarray[at] := tmp;
END
END; { FOR i:= 0 }
ssort := newarray;
END;
{ MAIN }
VAR
a1, a2: intarray;
buf, i: integer;
BEGIN
{ read array }
FOR i:=1 TO len DO
BEGIN
writeln ('Enter a number');
readln (buf);
a1[i] := buf;
END;
{ print a1 }
FOR i:=1 TO len DO
BEGIN
write(a1[i], ' ');
END;
writeln;
{ sort }
a2 := ssort (a1);
{ print sorted a2}
FOR i:=1 TO len DO
BEGIN
write(a2[i], ' ');
END;
writeln;
END.
quinta-feira, 16 de setembro de 2010
Selection Sort in PASCAL
Assinar:
Comentários (Atom)