package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
intArr := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
for i := 0; i < 10; i++ {
shuffle(intArr)
fmt.Println(intArr)
}
}
// 洗牌算法
func shuffle(arr []int) {
rand.Seed(time.Now().UnixNano())
var i, j int
var temp int
for i = len(arr) - 1; i > 0; i-- {
j = rand.Intn(i + 1)
fmt.Println("i=", i, "j=", j)
temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}
}
====================
结果如下:
i= 8 j= 7i= 7 j= 7i= 6 j= 1i= 5 j= 4i= 4 j= 1i= 3 j= 3i= 2 j= 2i= 1 j= 0[6 1 3 4 7 5 2 9 8]i= 8 j= 7i= 7 j= 7i= 6 j= 1i= 5 j= 4i= 4 j= 1i= 3 j= 3i= 2 j= 2i= 1 j= 0[5 6 3 4 2 7 1 8 9]i= 8 j= 7i= 7 j= 7i= 6 j= 1i= 5 j= 4i= 4 j= 1i= 3 j= 3i= 2 j= 2i= 1 j= 0[7 5 3 4 1 2 6 9 8]
留言与评论(共有 0 条评论) “” |