30 lines
676 B
Go
30 lines
676 B
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)
|
|
}
|
|
}
|