数组洗牌是指将一个数组中的元素顺序打乱,随机重新排列。
算法实现思路如下:
按照下标从大到小的顺序遍历数组,记下标为i 遍历时生成范围[0, i]的随机数j,交换下标i与下标j的数组元素
参考:java.util.Collections
类中的shuffle
方法
Java代码:
public static void shuffle(int[] nums) {
Random rnd = new Random();
for (int i = nums.length - 1; i > 0; i--) {
int j = rnd.nextInt(i + 1);
//swap index i, j
int t = nums[i];
nums[i] = nums[j];
nums[j] = t;
}
}
本文链接:http://bookshadow.com/weblog/2016/02/03/java-array-shuffle/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。