写一个 java 数组打乱函数
时间: 2024-05-03 11:22:41 浏览: 106
以下是一个Java实现打乱数组的函数:
```java
import java.util.Random;
public class ShuffleArray {
public static void shuffle(int[] nums) {
Random rand = new Random();
for (int i = nums.length - 1; i >= 1; i--) {
int j = rand.nextInt(i + 1);
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
shuffle(nums);
for (int i : nums) {
System.out.print(i + " ");
}
}
}
```
该函数使用了Fisher-Yates算法来打乱数组。该算法的基本思想是,从数组的最后一个位置开始,随机选择一个位置进行交换,直到数组的第一个位置。这样可以保证每个元素都有相等的概率出现在任何位置。
在上面的代码中,我们使用了Java的Random类来生成随机数,并使用nextInt()方法来生成[0, i]范围内的随机数。我们从数组的最后一个位置开始循环,每次随机选择一个位置j,然后将当前位置i的值与位置j的值进行交换。最后,我们得到了一个随机打乱的数组。
阅读全文