zoukankan      html  css  js  c++  java
  • Java冒泡算法及中位数算法

    import java.math.BigDecimal;
    
    public class Test {
        
        public static void main(String[] args) {
            //控制随机数量
            int c = 100;
            Number[] array = new Number[c];
            /*初始化*/
            for(int i=0;i<array.length;i++){
                Number random = round(Math.random()*100,2);
                array[i] = random;
            }
            
            
            Number[] array_A = array;
        
            /* *
             * 乱序
             * 若初始化的数组是循环的有序整形,才有打乱数组构成的必要
             * */
            for (int i = 0; i < array.length;  i++) {
                Number random = Math.round(Math.random()*(c-1));
                Number temp = array[i];
                array[i] = array[random.intValue()] ;
                array[random.intValue()] = temp;
            }
            
            Number[] array_B = array;
            
            System.out.println(out(array_A));
            System.out.println(getMidNum(array_A));
            System.out.println("**");
            System.out.println(out(array_B));
            System.out.println(getMidNum(array_B));
            
        }
        
        
        //冒泡算法
        public static Number[] sort(Number[] array){
            
            for(int i=0;i<array.length-1;i++){
                //起始标和之前的结束标是个小细节
                for(int j=i+1; j<array.length;j++){
                    
                    Number temp;
                    //这里可以控制正序或逆序
                    if(array[i].doubleValue()<array[j].doubleValue()){
                        temp = array[i];
                        array[i] = array[j];
                        array[j] = temp;
                    }
                }
            }
            return array;
        }
        
        
        
        //中位数算法
        public static double getMidNum(Number[] array){
            array = sort(array);
            //java.util.Arrays.sort(array);
            
            int c = array.length;
            
            double ret = c%2==0?(array[(c/2)-1].doubleValue()+array[c/2].doubleValue())/2:array[c/2].doubleValue();
            return ret;
        }
        
        //输出(数组之和&数组内成员)
        public static String out(Number[] array){
            
            String ret = "";
            double sum = 0;
            for (int i = 0; i < array.length; i++) {
                ret += array[i];
                if(i!=99){
                    ret +=",";
                }
                sum += array[i].floatValue();
                sum = round(sum,2);
            }
            
            return sum+":"+ret;
            
        }
        
        //四舍五入,位数
        public static double round(double number,int digits){
            BigDecimal b = new BigDecimal(number);  
            return b.setScale(digits,BigDecimal.ROUND_HALF_UP).doubleValue();
        }
        
        
    }
    在未来,有一个强大的自己等着我,不想和他失约。
  • 相关阅读:
    Restful接口传入多参数
    map转换成JSON的3种方式
    项目打包后执行start.sh提示“no such file or directory”解决办法,linux中给文件增加权限
    如何将一个a表a1字段与b表b1字段的笛卡尔积插入到e表中
    get、set方法的取代注释之lombok插件
    推荐 33 个 IDEA 最牛配置转(Java技术栈)
    mysql-----group by 对多个字段进行分组
    mysql获取某段时间内每一天的统计数据
    发票流水号生成方式
    postman之post请求传参
  • 原文地址:https://www.cnblogs.com/heasun/p/4645766.html
Copyright © 2011-2022 走看看