java之冒泡排序

冒泡排序原理:

  从第一个数开始,和后面一个数比较大小,根据升序或者降序,看是否需要互换位置。

  每一轮会把1个数罗列到正确位置,经过数组长度-1轮比较,排序完成。

比如:对数组{11,55,33,22,44}进行升序排列

  

  数组长度是5,需要经过5-1轮,每一轮需要比较5-当前轮次。

public class Test7 {
    public static void main(String[] args){
        int[] array_1={11,55,33,22,44};
        // 升序排列
        int x;
        for(int i=0;i<array_1.length-1;i++){
            System.out.println("\n第"+(i+1)+"轮开始");
            for(int j=0;j<array_1.length-1-i;j++){
                System.out.println("第"+(j+1)+"次比较:"+array_1[j]+"和"+array_1[j+1]);
                if(array_1[j]>array_1[j+1]){
                    System.out.println("互换");
                    x=array_1[j];
                    array_1[j] = array_1[j+1];
                    array_1[j+1] = x;
                }
                System.out.println("第"+(j+1)+"次比较结束:"+Arrays.toString(array_1));
            }
            System.out.println("第"+(i+1)+"轮结束:"+Arrays.toString(array_1));
        }
        System.out.println("最终排序结果为"+Arrays.toString(array_1));
    }
}
第1轮开始
第1次比较:11和55
第1次比较结束:[11, 55, 33, 22, 44]
第2次比较:55和33
互换
第2次比较结束:[11, 33, 55, 22, 44]
第3次比较:55和22
互换
第3次比较结束:[11, 33, 22, 55, 44]
第4次比较:55和44
互换
第4次比较结束:[11, 33, 22, 44, 55]
第1轮结束:[11, 33, 22, 44, 55]

第2轮开始
第1次比较:11和33
第1次比较结束:[11, 33, 22, 44, 55]
第2次比较:33和22
互换
第2次比较结束:[11, 22, 33, 44, 55]
第3次比较:33和44
第3次比较结束:[11, 22, 33, 44, 55]
第2轮结束:[11, 22, 33, 44, 55]

第3轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第2次比较:22和33
第2次比较结束:[11, 22, 33, 44, 55]
第3轮结束:[11, 22, 33, 44, 55]

第4轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第4轮结束:[11, 22, 33, 44, 55]
最终排序结果为[11, 22, 33, 44, 55]

 

posted @ 2023-12-15 11:59  努力工作,早日退休  阅读(4648)  评论(0编辑  收藏  举报