您的位置:首页 > 编程语言

数组中的数据随机排列的生成代码及方法

2011-12-17 20:25 477 查看
基本上面试的童鞋都遇到过这个问题,或者类似的问题。我就在此提供一个简单的算法给大家!..

方法一:

public class Main {

int array[]={4,5,3,5,9,12,43,23};

int length=array.length;

boolean mark[]=new boolean[length];

int c[]=new int[length];

Random r=new Random();

int p=0;

/**

* @param args

*/

public static void main(String[] args) {

Main m=new Main();

for(int i=0;i<m.array.length;i++){

System.out.print(","+m.array[i]);

}

System.out.println("");

m.a();//随机产生数组

for(int j=0;j<m.length;j++){

System.out.print(","+m.c[j]);

}

}

public void a(){

for(int i=0;i<length;i++){

c[i]=array[b()];

}

}

public int b(){

boolean biaozi=true;

while(biaozi){

p=r.nextInt(length);

if(!mark[p]){

biaozi=false;

mark[p]=true;

}

}

return p;

}

}

方法二:提供思路,后面就很好解决了。。。想想就会的,呵呵~~

将其数组中的每一个数据看成对象,然后放到list里面,然后再利用random随机生成一个数,去过的list中对应的数据,然后赋值给一个创建同样大小的数组,然后创建一个for循环逐个赋值,从list取走数据后,然后将其list中移除此对象,然后再根据此时的list.size,然后随机生成数,去取list中的数据,然后赋值给新的数组....以此下去就ok了。

如果还没有明白,举个最简单的生活中的例子很明白了。

福利彩票中奖号码的随机生成:

已知 6个球 现在是排好序的。

然后将其全部倒入桶中,然后搅拌,随机取球。取出的球我们顺序排好。全部取完,排列好的这个顺序不就是我们想要的了吗 。。。。简答吧 哈哈~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐