遍历数组一次来实现随机排序
有一数组arr
- 在第0~arr.leng-1个元素中随机抽取某一元素,将其与第0个元素交换值
- 在第1~arr.leng-1个元素中随机抽取某一元素,将其与第1个元素交换值
- 在第2~arr.leng-1个元素中随机抽取某一元素,将其与第2个元素交换值
……
即每从可抽元素中随机抽到一个元素,将其依先后顺序放置在数组的前面部分,将原位置的元素放置在被抽到元素的位置
代码于下
Random r=new Random();
int number;
int temp;
for(int i=0;i<arr.length;i++) {
number=r.nextInt(arr.length-i)+i;
temp=arr[i];
arr[i]=arr[number];
arr[number]=temp;
}