喝着JAVA看算法_01_排序算法之(1)冒泡排序

冒泡排序,可以說是最經典的排序算法了,博主畢業那年去各大公司面試,被要求寫過多次冒泡排序,現在想想感慨良多~~

1. 思想

在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒,像冒泡一樣。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。

2. 圖示

冒泡排序圖示

3. 代碼

public static void main(String[] args) {
    int[] numbers = { 41, 72, 83, 90, 30, 25 };
    new Test().bubbleSort(numbers);

    //System.out.print(Arrays.toString(numbers));
}

public int[] bubbleSort(int[] numbers) {

    int temp = 0;
    for(int i = 0; i < numbers.length - 1; i++) {
        for(int j = 0; j < numbers.length - 1 - i; j++) {
            if(numbers[j] > numbers[j+1]) {
                temp = numbers[j];
                numbers[j] = numbers[j+1];
                numbers[j+1] = temp;
            }
        }
        //====測試用=====
        System.out.println("第" + (i+1) + "遍");
        System.out.println(Arrays.toString(numbers));
    }

    return numbers;
}

輸出結果:
第1遍
[27, 41, 66, 30, 25, 90]
第2遍
[27, 41, 30, 25, 66, 90]
第3遍
[27, 30, 25, 41, 66, 90]
第4遍
[27, 25, 30, 41, 66, 90]
第5遍
[25, 27, 30, 41, 66, 90]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章