Java--冒泡排序

冒泡排序

大致思路:(以升序为例)
例如:2 5 7 3 5 3 8 1

  1. 第一轮:前一个数与后一个数比较,将最大的元素冒泡出来
    在这里插入图片描述
  2. 第二轮:重复第一轮的比较过程,将第二的数字冒泡出来

在这里插入图片描述
3.第三轮:重复第一轮,将剩余数字中的最大的数字冒泡出来

4.继续重复,直至排序完成。

我们用i控制轮数,用j遍历数组,可利用如下代码实现:

class BubbleSort{
    public static void main(String[] args){
        int[] list={2,5,7,3,5,3,8,1};//给定一个测试的乱序数字数组
        bubbleSort(list);//排序
    }
    public static void bubbleSort(int[] list){
        int temp=0;//定义一个中间变量
        for(int i=0;i<list.length-1;i++){//遍历轮数
            for(int j=0;j<list.length-i-1;j++){//排序,已经排序好的不需要再遍历所以-i
                if(list[j]>list[j+1]){//如果后边比前边大就互换位置,只是前者与后者两两比较
                    temp=list[j];
                    list[j]=list[j+1];
                    list[j+1]=temp;
                }
            }
            System.out.print("第"+(i+1)+"轮排序结果:");
            for(int k=0;k<list.length;k++){//把每轮排序好的数组打印看过程
                System.out.print(list[k]);
            }
            System.out.println();//每一轮排序完换行
        }
    }
}

运行效果图:
在这里插入图片描述
时间复杂度:O(n^2),但稳定性良好,因为重复的数字没有改变原来的顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值