华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java基礎(chǔ) >> 文章內(nèi)容

Java冒泡排序法

來源:中華考試網(wǎng)  [2020年11月25日]  【

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

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

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

  例 1

  獲取用戶在控制臺輸入的 5 個成績信息,將這些成績保存到數(shù)組中,然后對數(shù)組應(yīng)用冒泡排序,并輸出排序后的結(jié)果,實現(xiàn)步驟如下。

  (1) 創(chuàng)建一個 Test24 類文件,在 main() 方法中開始編碼。首先創(chuàng)建 Scanner 類的實例后聲明 double 類型的 score 數(shù)組,然后接收用戶在控制臺輸入的成績,并保存到元素中。代碼如下:

  public static void main(String[] args) {

  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();

  }

  填寫下面表單即可預(yù)約申請免費試聽java課程!害怕學(xué)不會?助教陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!

預(yù)約申請免費聽java課程

  • 地區(qū):
  • 姓名:
  • 手機:

  }

  (2) 在對 score 數(shù)組排序之前,首先輸出數(shù)組中各個元素的值。代碼如下:

  System.out.println("排序前的元素值:");

  for(double val:score) {

  System.out.print(val+"\t");

  }

  System.out.println();

  (3) 通過冒泡排序方法實現(xiàn)對 score 數(shù)組的排序,在實現(xiàn)時需要借助一個臨時變量。代碼如下:

  public static void main(String[] args) {

  System.out.println("通過冒泡排序方法對數(shù)組進行排序:");

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

  // 比較相鄰兩個元素,較大的數(shù)往后冒泡

  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]; // 把第二個元素值轉(zhuǎn)移到第 一個元素變量中

  score[j] = temp; // 把臨時變量(第 一個元素的原值)保存到第二個元素中

  }

  System.out.print(score[j] + " "); // 對排序后的數(shù)組元素進行輸出

  }

  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

  通過冒泡排序方法對數(shù)組進行排序:

  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 】

責(zé)編:fushihao

上一篇:Java選擇排序法

下一篇: 沒有了

  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
鄂温| 康乐县| 荥阳市| 凤冈县| 洱源县| 连南| 大宁县| 房产| 于田县| 西充县| 阿城市| 兴仁县| 长治县| 休宁县| 慈利县| 密云县| 唐河县| 渭南市| 维西| 五华县| 广东省| 巴青县| 漳州市| 松阳县| 突泉县| 太仆寺旗| 虹口区| 宣武区| 南部县| 株洲市| 湾仔区| 盐边县| 晋城| 大姚县| 额济纳旗| 子长县| 沙河市| 崇阳县| 泾川县| 古交市| 新余市|