java 冒泡排序

冒泡排序 :

给定一个序列,从第一个数字开始,每次跟下一个相邻的数字比较,把大的放后边,也就是a[0]跟a[1]比较,a[1]跟a[2]比,a[2]跟a[3]比,以此类推,比到最后,
第一轮把最大的数,放到数组最后一位,
第二轮从第一个数开始比,比到倒数第二个数,把除了第一轮比较出来最大数之外的最大数,放在倒数第二位,
以此类推,直到循环比较结束,序列排好顺序
这里写图片描述

代码:

    public static int[] getSort(int[] data) {
        int len = data.length;
        for (int i = 0; i < len - 1; i++) {//轮数
            for (int j = 1; j < len - i; j++) {//每轮相邻两个数比较的次数
                if (data[j] < data[j - 1]) {
                    int mid = data[j];
                    data[j] = data[j - 1];
                    data[j - 1] = mid;
                }
            }
        }
        return data;
    }

小结:

比较的轮数为:从0开始到数组长度-2,也就是数组长度-1次
每轮比较的次数跟第几轮有关
如果数组长5,则需要4轮,(i =0,1,2,3代表轮号)
针对每一轮:
第0轮:比较4次
第1轮:比较3次
第2轮:比较2次
第3轮:比较1次
用一个变量 j 从1开始自增,到数组长度 j > len-i 停止,即每轮的比较次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值