Sorting algorithms/Stooge sort: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
(Added Wren) |
||
Line 2,102: | Line 2,102: | ||
PRINT |
PRINT |
||
RETURN</lang> |
RETURN</lang> |
||
=={{header|Wren}}== |
|||
<lang ecmascript>var stoogeSort // recursive |
|||
stoogeSort = Fn.new { |a, i, j| |
|||
if (a[j] < a[i]) { |
|||
var t = a[i] |
|||
a[i] = a[j] |
|||
a[j] = t |
|||
} |
|||
if (j - i > 1) { |
|||
var t = ((j - i + 1)/3).floor |
|||
stoogeSort.call(a, i, j - t) |
|||
stoogeSort.call(a, i + t, j) |
|||
stoogeSort.call(a, i, j - t) |
|||
} |
|||
} |
|||
var as = [ [4, 65, 2, -31, 0, 99, 2, 83, 782, 1], [7, 5, 2, 6, 1, 4, 2, 6, 3] ] |
|||
for (a in as) { |
|||
System.print("Before: %(a)") |
|||
stoogeSort.call(a, 0, a.count-1) |
|||
System.print("After : %(a)") |
|||
System.print() |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
Before: [4, 65, 2, -31, 0, 99, 2, 83, 782, 1] |
|||
After : [-31, 0, 1, 2, 2, 4, 65, 83, 99, 782] |
|||
Before: [7, 5, 2, 6, 1, 4, 2, 6, 3] |
|||
After : [1, 2, 2, 3, 4, 5, 6, 6, 7] |
|||
</pre> |
|||
=={{header|XPL0}}== |
=={{header|XPL0}}== |