C語言中文網 目錄
首頁 > Java教程 > Java數組處理 閱讀:1,444

Java數組排序:Java冒泡排序(Bubble Sort)法

冒泡排序(Bubble Sort)是常用的數組排序算法之一,它以簡潔的思想與實現方法而備受青睞,也是廣大學習者最先接觸的一種排序算法。

冒泡排序的基本思想是:對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素值移動到數組前面,把大的元素值移動到數組后面(也就是交換兩個元素的位置),這樣數組元素就像氣泡一樣從底部上升到頂部。

冒泡排序的算法比較簡單,排序的結果穩定,但時間效率不太高。Java 中的冒泡排序在雙層循環中實現,其中外層循環控制排序輪數,總循環次數為要排序數組的長度減 1。而內層循環主要用于對比相鄰元素的大小,以確定是否交換位置,對比和交換次數依排序輪數而減少。

例 1

獲取用戶在控制臺輸入的 5 個成績信息,將這些成績保存到數組中,然后對數組應用冒泡排序,并輸出排序后的結果,實現步驟如下。

(1) 創建一個 Test24 類文件,在 main() 方法中開始編碼。首先創建 Scanner 類的實例后聲明 double 類型的 score 數組,然后接收用戶在控制臺輸入的成績,并保存到元素中。代碼如下:
Scanner scan=new Scanner(System.in);
double[] score=new double[5];
for(int i=0;i<score.length;i++)
{
    System.out.print("請輸入第 "+(i+1)+" 個成績:");
    score[i]=scan.nextDouble();
}

(2) 在對 score 數組排序之前,首先輸出數組中各個元素的值。代碼如下:
System.out.println("排序前的元素值:");
for(double val:score)
{
    System.out.print(val+"\t");
}
System.out.println();

(3) 通過冒泡排序方法實現對 score 數組的排序,在實現時需要借助一個臨時變量。代碼如下:
System.out.println("通過冒泡排序方法對數組進行排序:");
for(int i=0;i<score.length-1;i++)
{
    //比較相鄰兩個元素,較大的數往后冒泡
    for (int j=0;j<score.length-1-i;j++)
    {
        if(score[j]>score[j+1])
        {
            double temp=score[j+1];    //把第一個元素值保存到臨時變量中
            score[j+1]=score[j];    //把第二個元素值轉移到第一個元素變量中
            score[j]=temp;    //把臨時變量(第一個元素的原值)保存到第二個元素中
        }
        System.out.print(score[j]+ " ");    //對排序后的數組元素進行輸出
    }
    System.out.print("【");
    for(int j=score.length-1-i;j<score.length;j++)
    {
        System.out.print(score[j]+" ");
    }
    System.out.println("】");
}

(4) 運行前面的代碼進行測試,如下所示。
請輸入第 1 個成績:77
請輸入第 2 個成績:90
請輸入第 3 個成績:68
請輸入第 4 個成績:59
請輸入第 5 個成績:80
排序前的元素值:
77.0    90.0    68.0    59.0    80.0   
通過冒泡排序方法對數組進行排序:
77.0 68.0 59.0 80.0 【90.0 】
68.0 59.0 77.0 【80.0 90.0 】
59.0 68.0 【77.0 80.0 90.0 】
59.0 【68.0 77.0 80.0 90.0 】

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户