排序算法總結(java篇)

排序算法分類

è¿éåå¾çæè¿°

 

排序算法時間複雜度

 

冒泡排序

 冒泡排序要注意的一點就是它是兩兩對比,當走完一遍的時候,可以確定最大的已經被排序到最後了,這個在寫代碼的時候要注意,記住關鍵的兩點:

  1. 相鄰的兩個數進行比較,大於則進行調換。
  2. 每一組走完就可以確定最大的數已經放到了正確的位置。

代碼

 private static void bubbling(int[] arr) {
        int len = arr.length;
        int count = 0;
        for (int i = 0; i < len - 1; i++) {
            for (int j = 1; j < len - i; j++) {
                int c = arr[j-1];
                count++;
                if (arr[j-1] > arr[j]) {
                    arr[j-1] = arr[j];
                    arr[j] = c;

                }
            }
        }
        System.out.println("總共循環了: " + count);
        for (int i : arr) {
            System.out.print(i);
            System.out.print(",");
        }
    }

選擇排序

    選擇排序也是屬於簡單算法,他執行的原理就是從第一個開始,一次與後續的所有數字進行對比,找到比他小的然後調換位置,以此類推,直到所有元素均排序完畢。 

圖示:

代碼


    private static void selection(int[] arr) {
        int len = arr.length;
        int count = 0;
        for (int i = 0; i < len - 1; i++) {
            for (int j = i; j < len - 1; j++) {
                int c = arr[i];
                count++;
                if (arr[i] > arr[j+1]) {
                    arr[i] = arr[j+1];
                    arr[j+1] = c;
                }
            }
        }

        System.out.println("總共循環了: " + count);
        for (int i : arr) {
            System.out.print(i);
            System.out.print(",");
        }
    }

 

 

 

 

 

 

 

 

 

 

 

參考文章: 

       https://blog.csdn.net/qq_31860135/article/details/83993357

       https://www.cnblogs.com/onepixel/articles/7674659.html

 

 

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