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:
Postagens (Atom)