Sorting algorithms/Gnome sort: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: corrected a misspelling. -- ~~~~) |
(Added XPL0) |
||
Line 1,866: | Line 1,866: | ||
<pre> |
<pre> |
||
'adddeffffgghiiijjjjkkkkllnnooqsswww' |
'adddeffffgghiiijjjjkkkkllnnooqsswww' |
||
</pre> |
|||
=={{header|XPL0}}== |
|||
<lang XPL0>code ChOut=8, IntOut=11; |
|||
proc GnomeSort(A(0..Size-1)); \Sort array A |
|||
int A, Size; |
|||
int I, J, T; |
|||
[I:= 1; |
|||
J:= 2; |
|||
while I < Size do |
|||
if A(I-1) <= A(I) then |
|||
[\ for descending sort, use >= for comparison |
|||
I:= J; |
|||
J:= J+1; |
|||
] |
|||
else |
|||
[T:= A(I-1); A(I-1):= A(I); A(I):= T; \swap |
|||
I:= I-1; |
|||
if I = 0 then |
|||
[I:= J; |
|||
J:= J+1; |
|||
]; |
|||
]; |
|||
]; |
|||
int A, I; |
|||
[A:= [3, 1, 4, 1, -5, 9, 2, 6, 5, 4]; |
|||
GnomeSort(A, 10); |
|||
for I:= 0 to 10-1 do [IntOut(0, A(I)); ChOut(0, ^ )]; |
|||
]</lang> |
|||
{{out}} |
|||
<pre> |
|||
-5 1 1 2 3 4 4 5 6 9 |
|||
</pre> |
</pre> |
||