产生均匀随机排列数组

假设给定一个数组A,它包含元素1到n,我们的目标是构造这个数组的一个随机排列

方法一

Permute-by-sorting(A)
1 n<-length[A]
2 for i<- 1 to n
3 do P[i]=RANDOM(1,n*n*n)
4 sort A, using P as sort keys
5 return A

方法二

Randomize-in-place(A)
1 n<- length[A]
2 for i <-1 to n
3 do swap A[i]<-> A[RANDOM(i,n)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章