Sorting algorithms/Gnome sort: Difference between revisions

Add BCPL
m (→‎version 1: added whitespace.)
(Add BCPL)
Line 768:
UNTIL I%>Size%
ENDPROC</lang>
 
=={{header|BCPL}}==
<lang bcpl>get "libhdr"
 
let gnomesort(A, len) be
$( let i=1 and j=2 and t=?
while i < len
test A!(i-1) <= A!i
$( i := j
j := j + 1
$)
or
$( t := A!(i-1)
A!(i-1) := a!i
A!i := t
i := i - 1
if i = 0
$( i := j
j := j + 1
$)
$)
$)
 
let writearray(A, len) be
for i=0 to len-1 do
writed(A!i, 6)
 
let start() be
$( let array = table 52, -5, -20, 199, 65, -3, 190, 25, 9999, -5342
let length = 10
writes("Input: ") ; writearray(array, length) ; wrch('*N')
gnomesort(array, length)
writes("Output: ") ; writearray(array, length) ; wrch('*N')
$)</lang>
{{out}}
<pre>Input: 52 -5 -20 199 65 -3 190 25 9999 -5342
Output: -5342 -20 -5 -3 25 52 65 190 199 9999</pre>
 
=={{header|C}}==
2,093

edits