Sorting algorithms/Insertion sort: Difference between revisions

Added Oberon-2
(Sorting algorithms/Insertion sort in BASIC256)
(Added Oberon-2)
Line 3,848:
{{out}}
<pre>@[-31, 0, 2, 2, 4, 65, 83, 99, 782]</pre>
 
=={{header|Oberon-2}}==
{{trans|Modula-3}}
<syntaxhighlight lang="oberon2">MODULE InsertionSort;
 
IMPORT Out;
VAR
i:LONGINT;
A1:ARRAY 10 OF INTEGER;
PROCEDURE Init;
BEGIN
A1[0] := 4; A1[1] := 65; A1[2] := 2; A1[3] := -31;
A1[4] := 0; A1[5] := 99; A1[6] := 2; A1[7] := 83;
A1[8] := 782; A1[9] := 1;
END Init;
PROCEDURE InsertionSort(VAR A:ARRAY OF INTEGER);
VAR
i,j:LONGINT;
value:INTEGER;
BEGIN
FOR i := 1 TO LEN(A)-1 DO
value := A[i];
j := i-1;
WHILE((j >= 0) & (A[j] > value)) DO A[j+1] := A[j]; DEC(j) END;
A[j+1] := value
END;
END InsertionSort;
 
PROCEDURE PrintArray(VAR A:ARRAY OF INTEGER);
BEGIN
FOR i := 0 TO LEN(A)-1 DO Out.Int(A[i],0); Out.Char(' ') END;
Out.Ln
END PrintArray;
BEGIN
Init;
PrintArray(A1);
InsertionSort(A1);
PrintArray(A1);
END InsertionSort.
</syntaxhighlight>
 
{{out}}
<pre>4 65 2 -31 0 99 2 83 782 1
-31 0 1 2 2 4 65 83 99 782
</pre>
 
=={{header|Objeck}}==
40

edits