Java实现简单的冒泡排序

冒泡排序

  它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的。 
  什么是冒泡排序? 
  顾名思义,像水里吐的泡泡一样,因为水越深压强越大,而泡泡的在水里的由深变浅。所以,同样的气体体积,第一个出来的泡泡比第二个出来的要大。如下图所示 
这里写图片描述
  冒泡排序的Java代码

public class Bubble {

    /**
     * 冒泡排序算法方法,intArrays为传入的数组
    */
    public static void sort(int[] intArrays){
        int length=intArrays.length-1;
        for(int i=0;i<length;i++){
            //每一次循环找出最大值
            for(int j=0;j<length-i;j++){
                if(intArrays[j]>intArrays[j+1]){
                    //如果前面的数比后面的数大就交换它们的位置
                    NumberUtils.exchange(intArrays,j,j+1);
                }
            }
        }
    }
    /**
     * 执行入口,intArrays:待排序的数组,displaySort:是否显示排序前和排序后的内容。
    */
    public static void run(int intArrays[],boolean displaySort){
        //克隆一份数组
        int arrays[]= intArrays.clone();
        // 判断是否需要显示排序前的内容
        if(displaySort){
            NumberUtils.display(arrays,1);
        }
        // 记录开始时间
        long startTime=System.currentTimeMillis();
        sort(arrays);
        // 记录结束时间
        long endTime=System.currentTimeMillis();
        // 判断是否需要显示排序前的内容
        if(displaySort){
            NumberUtils.display(arrays,2);
        }
        System.out.println("冒泡排序用时:"+(endTime-startTime)+"毫秒");
    }
    /**
     * 测试排序用的主方法
    */
    public static void main(String[] args){
        //数组长度
        int length=30000;
        //最大值
        int max =100000000;
        //是否打印排序后的内容
        boolean display=false;
        //随机获取的排序数组
        int intArrays[]= NumberUtils.getRandomArs(length,max);
        Bubble.run(intArrays,display);
    }
}

  运行main()方法,终端输出

排序前:98692885 78734154 7745406 97043438 68720323 42819146 8210211 27611617 78857452 ......51820813 58031010 85028575 47959133 49404805 84102205 12103474 46209285 79427548 12704778 
排序后:3621 6462 7920 11753 15464 17636 19331 23490 31389 ......99954272 99955130 99969666 99970755 99
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值