看面经里看到过这一题,然后自己查了一下,记录一下
写一个shuffle函数打乱数组
方法一
随机选择从当前下标到数组末尾的一个数进行交换
public class Main {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5,6};
shuffle(nums);
for(int n:nums)
System.out.print(n+" ");
}
public static void shuffle(int[] nums) {
Random random = new Random();
int len = nums.length;
for(int i = 0;i<nums.length-1;i++) {
int j = random.nextInt(len-i)+i;
swap(nums,i,j);
}
}
public static void swap(int[] nums,int i,int j) {
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}