算法(二)冒泡排序

       在上一篇中我們討論了選擇排序算法,本篇我們一起討論下關於冒泡排序的算法,他也是屬於蠻力算法的一種。

在一個可排序的列表中,我們每一次只比較相鄰的元素,如果兩者之間爲逆序的話,我們就交換,這樣我就把最大的元素沉到最底部,接下來我們就可以把第二大元素沉下去,算法直到所有元素漂浮到自己應該在的位置,則結束算法。


由於算法比較次數多,我們在這裏只列舉出兩輪比較,展示給大家,以此類推就可以得出其他的結果:

eg:

             第一輪:

             89  45  68  90  29  34  17

             45  89  68  90  29  34  17

             45  68  89  90  29  34  17

             45  68  89  29  90  34  17

             45  68  89  29  34  90  17

             45  68  89  29  34  17  90



             第二輪:

             45  68  29  89  34  17  90

             45  68  29  34  89  17  90

             45  68  29  34  17  89  90

            

package gzw.pkg1;

/**
 * Created by gzw on 2014/11/2.
 */
public class BubbleSort {

    public static void main(String [] agrs){

        int i,j,temp;
        int arry[] = {89,45,68,90,29,34,17};

        for(i = 0;i<arry.length-1;i++){

            for(j = 0;j<arry.length-1-i;j++){

                if(arry[j+1] < arry[j]){

                    temp = arry[j+1];
                    arry[j+1] = arry[j];
                    arry[j] = temp;
                }
            }
        }
        for(i = 0;i<arry.length;i++){

            System.out.print(" "+arry[i]);
        }
    }
}


It is never too late to be what you might have been.


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