1. 程式人生 > >排序演算法(氣泡排序、選擇排序、插入排序、歸併排序、快速排序、希爾排序)

排序演算法(氣泡排序、選擇排序、插入排序、歸併排序、快速排序、希爾排序)

氣泡排序

          核心:

                      相鄰元素兩兩比較,大的往後放。第一次比較完畢以後,最大的值就出現在了最大的索引處。以此類推,最終將得到一個從小到大的資料。

         規律:

                      1、兩兩比較,大的往後放

                      2、每一次比較完畢以後,下一次比較的時候就會減少一個元素的比較

        視訊講解:

                       舞動的排序演算法 氣泡排序

 

        程式碼如下:

   /**
     * 氣泡排序
     * 從小到大進行排序
     * @return
     */
    public int[] bubbling2(int[] data){

        int temp = 0;
        if (data !=null&&data.length>0){
            //迴圈遍歷0下標~倒數第二個下標所對應的元素
            for (int i = 0; i < data.length - 1; i++) {
                //
                for (int j = 0; j < data.length - 1 - i; j++) {
                    //比較前後兩數的值
                    if (data[j] > data[j + 1]) {
                        //記錄最大的值(也就是前面的值)
                        temp = data[j];
                        //前面的值和後面的值進行位置互換
                        data[j] = data[j+1];
                        data[j+1] = temp;
                    }
                }
            }
        }
        return data;
    }