冒泡排序的Java實現

基本方法:

    設待排序對象序列中的對象個數爲n。一般地,第i趟起泡排序從1到n-i+1依次比較相鄰兩個記錄地關鍵字,如果發生逆序,則交換之,其結果是這n-i+1個記錄中,關鍵字最大的記錄被交換到第n-i+1的位置上,最多作n-1趟。

代碼實現:

public class Sort {
    public static void main(String[] args){
        int[] array = {21,25,49,25,16,8,100,46,88};
        sort(array);
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

    private static void sort(int[] array) {
        int length = array.length;
        for (int i = length;  i>1; i--) {//i變量用來控制遍歷的次數,起始值爲數組的長度,每次比較完一趟後,i-1,因爲最後的一位已經確定是最大的,無需再比較
            for (int j = 0; j < i-1; j++) {//j變量表示元素的位置
                if(array[j]>array[j+1])//從第一個位置開始到i-1個位置遍歷,如果發現值小於下一個元素,那麼與其交換位置.
                    swap(array,j,j+1);
            }
        }
    }
    //交換方法
    private static void swap(int[] array, int j, int i) {
        int temp = array[j];
        array[j] = array[i];
        array[i] = temp;
    }
}

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