产生均匀随机排列数组

来源:互联网 发布:淘宝助手软件 编辑:程序博客网 时间:2024/05/29 09:13

假设给定一个数组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)]

0 0
原创粉丝点击