冒泡排序

冒泡排序算法原理

1、每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡)

2、 拿着左边的数字和右边的数字比对,当左边 > 右边的时候,交换位置。

例如:9, 8, 10, 7, 6

第1次循环:比较的数据 9 8 10 7 6
8 9 10 7 6 第1次比较:交换
8 9 10 7 6 第2次比较:不交换
8 9 7 10 6 第3次比较:交换
8 9 7 6 10 第4次比较:交换

第2次循环:比较的数据 8 9 7 6
8 9 7 6 第1次比较:不交换
8 7 9 6 第2次比较:交换
8 7 6 9 第3次比较:交换

第3次循环:比较的数据 8 7 6
7 8 6 第1次比较:交换
7 6 8 第2次比较:交换

第4次循环:比较的数据 7 6
6 7 第1次比较:交换

 

public class BubbleSort {
    public static void main(String[] args) {

        int[] arr = {9, 8, 10, 7, 6, 0, 11};
        
        for(int i = arr.length-1; i > 0; i--){
            for(int j = 0; j < i; j++){
                // 不管是否需要交换位置,总之是要比较一次的。
                if(arr[j] > arr[j+1]){
                    // 交换位置
                    // arr[j] 和 arr[j+1] 交换
                    int temp;
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        // 输出结果
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

 

posted @ 2023-10-12 22:31  洛小依ovo  阅读(30)  评论(0)    收藏  举报