Sorting algorithms/Gnome sort: Difference between revisions
Content added Content deleted
m (→version 1: added whitespace.) |
Not a robot (talk | contribs) (Add BCPL) |
||
Line 768: | Line 768: | ||
UNTIL I%>Size% |
UNTIL I%>Size% |
||
ENDPROC</lang> |
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}}== |
=={{header|C}}== |