排序算法-冒泡排序

算是回顧基礎吧,順便記錄下來。java

冒泡排序:顧名思義就是像水中的氣泡同樣一個一個元素的向上冒。數組

  第一輪:第一個元素n1與第二個元素n2比較,若n1>n2,交換位置,反之不交換位置,第二個元素與第三個元素比較.......一直比較到最後一個元素,一輪下來最大的元素確定在最後一個索引的位置,小的元素慢慢往前移(形容水中氣泡慢慢冒在適合不過了)。spa

  繼續下一輪冒泡,最後一個索引位置固定則不用參與,將前面的元素在進行一一比較,這輪下來把第二大的元素放在了倒數第二個索引的位置,後面繼續循環...。code

時間複雜度:O(n^2)blog

用代碼實現(java):排序

public class bubbingSort {
    public static void main(String[] args) {
        int[] arrs = {100, 8, 20, 2, 8, 90, 50};
        bubbingSort(arrs);
    }

    private static void bubbingSort(int[] arrs) {
        //比較多少輪((數組的長度-1)輪)
        for(int i = 0;i < arrs.length - 1;i++) {
            //一輪比較:前一個與後一個比較
            //爲啥這裏j < arrs.length - 1 - i: 由於比較完一輪就有一個索引位置被肯定,肯定了則不用再重複比較了
            for(int j = 0;j < arrs.length - 1 - i;j++) {
                if(arrs[j] > arrs[j + 1]) {
                    int temp = arrs[j];
                    arrs[j] = arrs[j + 1];
                    arrs[j + 1] = temp;
                }
            }
        }
        for (int i : arrs) {
            System.out.println(i);
        }
    }
}

 

  

據說優秀的工程師都寫博客,誰還不想變的優秀呢?索引

相關文章
相關標籤/搜索