您的位置:首页 > 其它

算法(一)之洗牌算法

2015-12-05 23:46 148 查看
洗牌算法是我们常见的随机问题,在玩游戏、随机排序时经常会碰到,一个最常用的地方就是组卷。它可以抽象成这样:M以内的所有自然数的随机顺序数组。
 

package com.math;

import java.util.Random;

/**
* @author summer
*
*/
public class Shuffle {

static final int[] a = new int[54];
static Random rnd = new Random();

static{

for(int i=1;i<55;i++)
a[i-1] = i;

}

static void swap(int[] arr,int i,int j){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}

public static void  shuffle(){
for (int i=a.length; i>1; i--)
swap(a, i-1, rnd.nextInt(i));
}

public static void main(String[]args){

shuffle();
for(int i:a){
System.out.println(i);
}
}
}


 

简单的实现一下,有什么问题大家来指正。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: