Sorting algorithms/Counting sort: Difference between revisions

Content added Content deleted
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
(Added Oberon-02)
Tag: Made through Tor
Line 2,543: Line 2,543:
Output:
Output:
<pre>@[1, 1, 1, 3, 4, 5, 7, 20]</pre>
<pre>@[1, 1, 1, 3, 4, 5, 7, 20]</pre>

=={{header|Oberon-2}}==
<syntaxhighlight lang="oberon">MODULE CS;

IMPORT Out;

VAR
A:ARRAY 8 OF INTEGER;
I:LONGINT;

PROCEDURE Init(VAR A:ARRAY OF INTEGER);
BEGIN
A[0] := 80; A[1] := 10; A[2] := 40; A[3] := 60;
A[4] := 50; A[5] := 30; A[6] := 20; A[7] := 70;
END Init;

PROCEDURE CountingSort(VAR A:ARRAY OF INTEGER; Min,Max:INTEGER);
VAR
I,Z,Range:LONGINT;
Count:POINTER TO ARRAY OF INTEGER;
BEGIN
Range := Max - Min + 1;
NEW(Count, Range);
Z := 0;
FOR I := 0 TO LEN(A)-1 DO
INC(Count[A[I] - Min]);
END;
FOR I := Min TO Max DO
WHILE(Count[I - Min] > 0) DO
A[Z] := SHORT(I);
INC(Z);
DEC(Count[I - Min]);
END;
END;
END CountingSort;

BEGIN
Init(A);
CountingSort(A, 10, 80);
FOR I := 0 TO LEN(A)-1 DO
Out.Int(A[I],0); Out.String(" ");
END;
Out.Ln;
END CS.
</syntaxhighlight>


=={{header|Objeck}}==
=={{header|Objeck}}==