Permutations: Difference between revisions

m (→‎{{header|Java}}: removed dead link)
Line 3,046:
[2 3 1]
[3 2 1]</pre>
 
=== Non-recursive algorithm to generate all permutations in lexicographical order ===
 
<lang go>package main
 
import "fmt"
 
func main() {
var a = []int{1, 2, 3}
fmt.Println(a)
var n = len(a) - 1
var i, j int
for c := 1; c < 6; c++ { // 3! = 6:
i = n - 1
j = n
for a[i] > a[i+1] {
i--
}
for a[j] < a[i] {
j--
}
a[i], a[j] = a[j], a[i]
j = n
i += 1
for i < j {
a[i], a[j] = a[j], a[i]
i++
j--
}
fmt.Println(a)
}
}</lang>
 
{{out}}
<pre>[1 2 3]
[1 3 2]
[2 1 3]
[2 3 1]
[3 1 2]
[3 2 1]
</pre>
 
=={{header|Groovy}}==
Anonymous user