用java.lang.Math.random()语句,随机输出{size:自定义参数}个数不重复并且按顺序从小到大排列(冒泡排序)

package com.test;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.lang.Integer;
/**
 * Created by Administrator on 2016/11/13.
 */
public class ClazzTest {

    public static void main(String [] args){
        sort(5);
    }

    //用Math.random()方法生产随机数
    public static int createNO(){
        //Math.random()生产随机数是0-1之间的小数,我这里生产1-10
        int ran = (int) (10*Math.random());
        return ran;
    }

    //向random数组中添加size个不同的元素(size<10)
    private  static int[] random(int size){
        int random[] = new int[size];
        //定义一个布尔值的类型来控制是否要往random中添加数据
        boolean flg = true;
        for (int i =0 ;i<size;i++){
            //while (true) 来控制数组中数值不一样
            while(true){
                //先获取一个随机数
                //每次都要先设置为true,不然,如果i<size时,出现以下重复就会一直死循环了
                flg = true;
                int ran  = createNO();
                for (int j=0;j<=i;j++){
                    //判断random 数组中是否有该元素
                    if(random[j]==ran){
                        flg = false;
                        break;
                    }
                }
                //将新的随机数添加进随机数组中
                if (flg == true){
                    random[i] = ran;
                    break;
                }

            }

        }

        return random;
    }

    public static void sort(int size){
        //调用random()方法获取数组
        int sortRandom[] = random(size);
        int  p;
        //冒泡排序
        for(int i = sortRandom.length-1;i>0;i--){
            for(int j=0;j<i;j++) {
                if (sortRandom[j]>sortRandom[j+1]){
                    p = sortRandom[j];
                    sortRandom[j] = sortRandom[j+1];
                    sortRandom[j+1] = p;
                }
            }
        }
        System.out.print("");
        for (int i = 0; i < sortRandom.length; i++) {
            System.out.println(sortRandom[i]);
        }
    }
}

 

posted @ 2016-11-14 15:48  Enast  阅读(938)  评论(0编辑  收藏  举报