Sorting algorithms/Stooge sort: Difference between revisions

Add Factor example
m (→‎{{header|REXX}}: placed the generating code in a subroutine, used a template for the output section, changed wording in the REXX header section.)
(Add Factor example)
Line 610:
<pre>{875,616,725,922,463,740,949,476,697,455}
{455,463,476,616,697,725,740,875,922,949}
</pre>
 
=={{header|Factor}}==
<lang factor>USING: combinators.extras kernel locals math prettyprint
sequences ;
IN: rosetta-code.stooge-sort
 
:: (stooge-sort) ( seq i j -- )
j i [ seq nth ] bi@ < [
j i seq exchange
] when
j i - 1 > [
j i - 1 + 3 /i :> t
seq i j t -
seq i t + j
seq i j t - [ (stooge-sort) ] thrice
] when ;
 
: stooge-sort ( seq -- seq' )
dup 0 over length 1 - (stooge-sort) ;
 
{ 1 4 5 3 -6 3 7 10 -2 -5 } stooge-sort .</lang>
{{out}}
<pre>
{ -6 -5 -2 1 3 3 4 5 7 10 }
</pre>
 
1,808

edits