算法(二)冒泡排序

       在上一篇中我们讨论了选择排序算法,本篇我们一起讨论下关于冒泡排序的算法,他也是属于蛮力算法的一种。

在一个可排序的列表中,我们每一次只比较相邻的元素,如果两者之间为逆序的话,我们就交换,这样我就把最大的元素沉到最底部,接下来我们就可以把第二大元素沉下去,算法直到所有元素漂浮到自己应该在的位置,则结束算法。


由于算法比较次数多,我们在这里只列举出两轮比较,展示给大家,以此类推就可以得出其他的结果:

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.


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