冒泡排序(Bubble Sort)

從第一個元素開始,讓前一個元素和後一個元素進行比較,大的放後邊.循環n次,每次選出數組中剩下部分最大的那個放後邊.

第一輪比較n次,第二輪比較n-1次.

 

public class BubbleSort {
    public static void bubbleSort(int [] arr){
        for (int i = arr.length -1; i > 0 ; i--){
            for (int j =0;j < i ; j++){
                if(arr[j] > arr[j+1]){
                    swap(arr,j);
                }
            }
        }
    }//bubbleSort

    public static void swap(int [] arr , int i, int j){
        arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];
        arr[i] = arr[i] ^ arr[j];
    }
}

時間複雜度 O(n^2)  額外空間複雜度爲O(1)

 

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