【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.后記:冒泡排序是排序算法的第一課,也是個人認為最容易入手的一個排序算法,后續我將為大家介紹更多實用但更復雜的排序算法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM