Sorting algorithms/Permutation sort: Difference between revisions
Content added Content deleted
(jq) |
m (Added the Sidef language) |
||
Line 1,363: | Line 1,363: | ||
(car permutations) |
(car permutations) |
||
(loop (cdr permutations)))))</lang> |
(loop (cdr permutations)))))</lang> |
||
=={{header|Sidef}}== |
|||
{{trans|Perl}} |
|||
<lang ruby>func psort(x, d) { |
|||
(d \\= x.end) || ( |
|||
range(1, x.end).each { |i| |
|||
x[i] < x[i-1] && return false |
|||
}; |
|||
return true; |
|||
); |
|||
(d+1).times { |
|||
x.prepend(x.splice(d, 1)...); |
|||
x[d] < x[d-1] && next; |
|||
psort(x, d-1) && return true; |
|||
}; |
|||
return false; |
|||
} |
|||
var a = 10.of { 100.rand.int }; |
|||
say "Before:\t#{a}"; |
|||
psort(a); |
|||
say "After:\t#{a}";</lang> |
|||
{{out}} |
|||
<pre> |
|||
Before: 60 98 85 85 37 0 62 96 95 2 |
|||
After: 0 2 37 60 62 85 85 95 96 98 |
|||
</pre> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |