冒泡排序算法

                                 冒泡排序算法

1. 原理

          冒泡排序,顧名思義就是將想冒泡一樣將最大的那個數冒到最高點。
          在一個數組中,遍歷這個數組,從第一個數開始,和後面一個數兩兩比較,
          如果前面一個數比後面一個數大,就交換2個數的位置,這樣可保證數組中
          最大的那個數一定在最後一位。這是第一次比較,接下來這個最大的數就
          不參與比較了,第二次比較重複上面操作,將第二大的數放在倒數第二位。
          同理,每次都把最大的數放在參與比較的數的最後一位,
          比到參與的只剩下一位數時,排序完成。

2.舉例

    假設有個長度爲4的數組 a[]={22,3,44,21},下面用冒泡排序算法對其進行升序排序。
    第一趟比較:22和3比較,22大於3,於是交換位置 數組變成 a[]={3,22,44,21}
                         22和44比較,22小於44,不做操作 數組爲a[]={3,22,44,21}
                         44和21比較,44大於22,於是交換位置 數組爲a[]={3,22,21,44}   
                         44成功冒泡,44不參與下一趟比較了
     第二趟比較:3和22比較,3小於22,不做操作 數組爲a[]={3,22,21,44}
                          22和21比較,22大於21,於是交換 數組變爲a[]={3,21,22,44}  
                           22成功冒泡,44和22不參與下一趟比較
    第三趟比較:3和21比較,3小於21 不做操作 數組爲a[]={3,21,22,44}   
                          21和22比較,21小於22 不做操作 數組爲a[]={3,21,22,44}  
                           21成功冒泡,44,22,21不參與下次比較
     由於參與比較的只剩下3一個數了,排序結束,結果爲數組升序排序。                     

3.java代碼實現

package sort;

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int a[]={22,3,44,21};
        bubbleSort(a);
        System.out.println(Arrays.toString(a));
    }   
    //冒泡排序算法
    public static void bubbleSort(int[] a){
        int temp;
        for(int i=0;i<a.length-1;i++){
            for(int j=0;j<a.length-1-i;j++){
                if(a[j]>a[j+1]){
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
}

打印結果爲:[3, 21, 22, 44]

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