Sorting algorithms/Insertion sort: Difference between revisions
Content added Content deleted
(Sorting algorithms/Insertion sort in BASIC256) |
Deadmarshal (talk | contribs) (Added Oberon-2) |
||
Line 3,848: | Line 3,848: | ||
{{out}} |
{{out}} |
||
<pre>@[-31, 0, 2, 2, 4, 65, 83, 99, 782]</pre> |
<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}}== |
=={{header|Objeck}}== |