【Java SE】如何用Java實現冒泡排序

摘要:

  做爲一名Java開發工程師,手頭若是不會幾個常見的排序算法,怎麼可能通過筆試題這一關呢。據我所知,許多大型的公司的筆試題都有排序題,那咱們先從最簡單的排序:冒泡排序開始,之後幾篇博客將繼續更新幾種深層次的排序。

  冒泡排序的原理:他的基本原理就是和相鄰的元素值進行比較(這裏特指和數組比較),若是知足條件就交換元素值,把較小的元素和較大的元素交換,這樣小的元素就像小氣泡同樣從底部上升到頂部,大的元素就像大氣泡同樣從頂部下沉到底部。

1.適宜人羣:有必定Java SE基礎的同窗,明白Java的數據類型,數組的定義、初始化以及經常使用數組的方法,還有Java的循環操做。

2.前期準備:最好有一個開發工具好比說:eclipse或者myeclipse均可以,固然你使用DOS系統進行編譯運行均可以,只不過改bug會麻煩一點。

3.算法實現:

public class BubbleSort{
    public static void main(String[] args){
        //首先建立一個無序的數組。
        int[] array = {100,120,530,1,2,48,26};//int[] array和int array[]均可以,可是推薦使用前者
        //建立冒泡排序類的對象
        BubbleSort arraySort = new BubbleSort();
        //調用排序方法將數組排序
        arraySort.sort(array);
    }
    public void sort(int[] array){
        for(int i= 1;i<array.length;i++)
        {
            //開始比較相鄰元素的值,大元素下沉
            for(int j=0;j<array.length-i;j++){
                if(array[j]>array[j+1]){
                    //知足條件就交換兩個元素的值
                    int temp = array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
        }
        showArray(array);
    }
    //顯示數組中的全部元素
    public void showArray(int[] array){
        //這裏使用的一種不常見的foreach循環,不習慣這種寫法的能夠用for循環
        /*
        for(int i=0;i<array.length;i++)
        {
            System.out.print(array[i]+" ");
        }
        */
        for(int i:array)
        {
            System.out.print(i+" ");
        }
    }
}

4.冒泡排序的優缺點:

優勢:比較簡單,空間複雜度較低,是穩定的。優勢:
缺點:時間複雜度過高,效率很差。

5.後記:冒泡排序是排序算法的第一課,也是我的認爲最容易入手的一個排序算法,後續我將爲你們介紹更多實用但更復雜的排序算法。

相關文章
相關標籤/搜索