Java数组乱序/随机排列算法

算法:顺序遍历,每次生成一个随机位置,和当前位置的元素互换。

运行时间是线性的。 

 1 /**
 2  * 数组乱序类
 3  * @author noam 
 4  */
 5 public class NRandom {
 6 
 7     /**
 8      * 对给定数目的自0开始步长为1的数字序列进行乱序
 9      * @param no 给定数目
10      * @return 乱序后的数组
11      */
12     public static int[] getSequence(int no) {
13         int[] sequence = new int[no];
14         for(int i = 0; i < no; i++){
15             sequence[i] = i;
16         }
17         Random random = new Random();
18         for(int i = 0; i < no; i++){
19             int p = random.nextInt(no);
20             int tmp = sequence[i];
21             sequence[i] = sequence[p];
22             sequence[p] = tmp;
23         }
24         random = null;
25         return sequence;
26     }
27 

28 } 

原文地址:https://www.cnblogs.com/noam/p/1983974.html