数组中的数据随机排列的生成代码及方法
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个球 现在是排好序的。
然后将其全部倒入桶中,然后搅拌,随机取球。取出的球我们顺序排好。全部取完,排列好的这个顺序不就是我们想要的了吗 。。。。简答吧 哈哈~~
方法一:
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个球 现在是排好序的。
然后将其全部倒入桶中,然后搅拌,随机取球。取出的球我们顺序排好。全部取完,排列好的这个顺序不就是我们想要的了吗 。。。。简答吧 哈哈~~
相关文章推荐
- 搬砖中的小事之代码(九)--改进八的客户编码随机串的生成方法
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- 一个用来快速生成指定大小的随机不重复int数组的实用方法
- Python生成随机数组的方法小结
- 生成闭区间随机指定维度数组方法
- JS生成随机打乱数组的方法示例
- Python实现生成随机数据插入mysql数据库的方法
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- ECSHOP 关于小型数据中excle生成的方法代码
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- Java:动态数组添加数据的方法及代码
- 写一个函数,参数为$n,生成一个数组,其元素为1~$n,各元素位置随机排列,不得重复
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- JS生成不重复随机数组的函数代码
- Java 生成随机字符串的方法之一(字母数组混合)
- 随机生成10个100以内的整数,把数据从小到大排序,而且算法复杂度只能是1(利用数组的索引也可...
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现及运行实例结果
- 生成特定分布随机数的方法:Python seed() 函数&numpy &scikit-learn随机数据生成
- Java 生成随机字符串的方法之一(字母数组混合)