java冒泡算法排序

java冒泡算法排序的代码实现如下:

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args){
        int[] arr = new int[]{2,3,7,1};
        for(int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    int temp = arr[j+1];
                    arr[j+1] = arr[j];
                    arr[j] = temp;
                }
            }
            System.out.println("第"+(i+1)+"次循环之后:"+Arrays.toString(arr));
        }
    }
}

控制台的输出如下:

第1次循环之后:[2, 3, 1, 7]
第2次循环之后:[2, 1, 3, 7]
第3次循环之后:[1, 2, 3, 7]

代码使用了一个外循环陷套一个内循环的形式,数组的长度是4,外循环循环了3次,

第1次循环之后,把第1最大值放到数组的最后第1位,

第2次循环之后,把第2最大值放到数组的最后第2位,

第3次循环之后,把第3最大值放到数组的最后第3位,

自然而然,不用再循环,第4最后值就会放到最后第4位了,所以外循环只用循环3次就可以了。

内循环时,每次只比较相邻两个数值,把较大值置后,较小值置前,

第1次外循环时,内循环要把最大值放到最后,所以要比较4个数值,内循环3次就可以了,

第2次外循环时,不用比较最大值,因为它已经放到最后了,所以要比较3个数值,内循环2次就可以了,

第3次外循环时,只用比较两个数值,内循环1次即可。

原文地址:https://www.cnblogs.com/qq2083587182/p/14455241.html