数组的元素打乱--Shuffle洗牌算法
import java.util.Arrays;
public class Demo5 {
public static void main(String[] args) {
// 将数组中的元素随机打乱
// Shuffle洗牌算法,洗牌的前提是牌不能变。洗之前是哪些牌,洗之后还得是那些牌
// 核心手法:交换位置
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 思路:遍历数组,每次生成一个随机数r,将第i个元素和第r个元素交换位置
// arr.fori + Enter 直接快速定义遍历数组代码
// int count = 3; 可以设置一个洗牌次数,通过循环进行多次洗牌
for (int i = 0; i < arr.length; i++) {
// 生成一个[0, length - 1]范围的随机数
// 其中Math.randon的取值范围是[0~1)
int randomIndex = (int)(Math.random() * arr.length);
// 让[i]元素和[randomIndex]的元素交换位置即可
int temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
// Arrays.toString()方法的作用:
// 把数组格式化成一个字符串,将所有元素以字符串形式拼接起来
System.out.println(Arrays.toString(arr));
}
}