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

基本上面试的童鞋都遇到过这个问题,或者类似的问题。我就在此提供一个简单的算法给大家!..

方法一:

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个球 现在是排好序的。

然后将其全部倒入桶中,然后搅拌,随机取球。取出的球我们顺序排好。全部取完,排列好的这个顺序不就是我们想要的了吗 。。。。简答吧 哈哈~~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值