Ну, если допустить, что описание дурацкое, то это http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D1%91%D1%82%D0%BE%D0%BC#.D0.9A.D0.BE.D0.BC.D0.BF.D0.BE.D0.BD.D0.B5.D0.BD.D1.82.D0.BD.D1.8B.D0.B9_.D0.9F.D0.B0.D1.81.D0.BA.D0.B0.D0.BB.D1.8C (Counting sort).
Код | PROGRAM Sort;
CONST n = 8; k = 100;
TYPE IntegerArray = ARRAY [0..n-1] OF INTEGER;
PROCEDURE Fill(var a: IntegerArray); BEGIN a[0] := 44; a[1] := 55; a[2] := 12; a[3] := 42; a[4] := 94; a[5] := 18; a[6] := 06; a[7] := 67; END; PROCEDURE Print(a: IntegerArray); VAR i: INTEGER; BEGIN FOR i := 0 TO n - 1 DO Write(a[i], ' '); Writeln; END;
PROCEDURE CountingSort(VAR a: IntegerArray); VAR i, j, b: INTEGER; c: ARRAY [0..k-1] OF INTEGER; BEGIN FOR i := 0 TO n - 1 DO c[i] := 0; FOR i := 0 TO n - 1 DO Inc(c[a[i]]); b := 0; FOR j := 0 TO k - 1 DO FOR i := 0 TO c[j] - 1 DO BEGIN a[b] := j; b := b + 1; END; END;
VAR ia: IntegerArray; BEGIN Fill(ia); Print(ia); CountingSort(ia); Print(ia); END.
|
|