冒泡排序

我在以前学的时候呀,总有一个疑问,什么是冒泡排序呢? 为什么叫冒泡排序呢?
其实就好比是水里的气泡,越往上,气泡越大,这就知道了,最后的那个数是最大的。

思路

当你的思路清晰了,代码就不是问题。首先考虑轮数,就比如说有4个数1,21,42,5
这4个数,冒泡排序就是第一个数和第二个数比,如果比第二个大,那么就交换位置,然后第二个依次和后面的比,第一轮比完,顺序就是 1,21,5,42
冒泡排序其实就是两层for循环嵌套,最外层是轮数,一共要比几轮呢,如果有i个数,就是比(i-1)轮 范围也就是1 到 i-1 ,这里的i用数组表示的话, 就是arr.length
那么是<arr.length-1还是<=arr.length-1呢,从第1轮开始,4个数,就是执行 1 2 3 一共3轮,也就是<=arr.length-1

第二层循环呢,就是比的是左边的数的位置范围,就拿第一轮来说,1,21,42,5 左边的数从下标0开始,到42也就是arr.length-2的位置为止;第二轮,还是从下标0开始,然后到arr.length-3 规律就是arr.length-1-i

里面就是比较如果左边的数大于右边的数,它们就交换

冒泡排序的实现:

public class Hello { 
    //冒泡排序:
    public static void main(String[] args) { 
        int []arr ={ 100,0,8,6,1,3,5,9,-3};
        for (int i = 1; i <=arr.length-1 ; i++) { 
            for (int j = 0; j <= arr.length-1-i; j++) { 
                if(arr[j]<arr[j+1]){ 
                    int t=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=t;
                }
            }
        }
        for (int a:arr) { 
            System.out.print(a+" ");
        }

    }
}

控制台结果:

本文地址:https://blog.csdn.net/ITwuwei/article/details/110879976