Java冒泡排序

冒泡排序

在这里插入图片描述
{42,43,26,24,23}
第一轮:42与23相比,如果前一个数比后一个数大交换位置。在交换位置后{42,43,26,24,23},用后一位数(相比之后为43)与下一位数(26)相比,如果前一个数比后一个数大交换位置。重复直到与最后一位数相比完{42,26,24,23,43}。共需4次比较,且最后一位数为最大值。

经过第一轮变化为{42,26,24,23,43},且最后一位数确定为最大值。
第二轮:42与26相比,如果前一个数比后一个数大交换位置。在交换位置后
{26,42,24,23,43},用后一位数(相比之后为42)与下一位数(26)相比,如果前一个数比后一个数大交换位置。重复直到与倒数第二位数相比完{26,24,23,42,43},因为最后一位数已经确定。共需比较3次,且最后两位数可确定排序。

经过第二轮变化为{26,24,23,42,43},且最后两位数可确定排序。
第三轮:26与24相比,如果前一个数比后一个数大交换位置。在交换位置后
{24,26,23,42,43},用后一位数(相比之后为26)与下一位数(23)相比,如果前一个数比后一个数大交换位置。重复直到与倒数第三位数相比完{24,23,26,42,43},因为最后两位数已经确定。共需比较2次,且最后三位数可确定排序。

经过第三轮变化为{24,23,26,42,43},且最后两位数可确定排序。
第四轮:24与23相比,如果前一个数比后一个数大交换位置。得到最终答案
{23,24,26,42,43}。因为最后三位数已经确定

由上可知,共需四轮,每轮需要4-i次相比。

        int[] a = {42,43,26,24,23};
//        quickSort(a,0,a.length-1);
        System.out.println(Arrays.toString(a));
        //外层循环控制轮次数
        for(int i = 0;i<a.length-1;i++){
            //内层循环控制该轮比较次数
            for (int j = 0;j<a.length-1-i;j++){
                if (a[j]>a[j+1]){
                    int temp;
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(a));
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值