1.15 Java冒泡排序法
生活随笔
收集整理的這篇文章主要介紹了
1.15 Java冒泡排序法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
冒泡排序(Bubble Sort)是常用的數組排序算法之一,它以簡潔的思想與實現方法而備受青睞,也是廣大學習者最先接觸的一種排序算法。
冒泡排序的基本思想是:對比相鄰的元素值,如果滿足條件就交換元素值,把較小的元素值移動到數組前面,把大的元素值移動到數組后面(也就是交換兩個元素的位置),這樣數組元素就像氣泡一樣從底部上升到頂部。
冒泡排序的算法比較簡單,排序的結果穩定,但時間效率不太高。Java 中的冒泡排序在雙層循環中實現,其中外層循環控制排序輪數,總循環次數為要排序數組的長度減 1。而內層循環主要用于對比相鄰元素的大小,以確定是否交換位置,對比和交換次數依排序輪數而減少。
例 1
獲取用戶在控制臺輸入的 5 個成績信息,將這些成績保存到數組中,然后對數組應用冒泡排序,并輸出排序后的結果,實現步驟如下。
(1) 創建一個 Test 類文件,在 main() 方法中開始編碼。首先創建 Scanner 類的實例后聲明 double 類型的 score 數組,然后接收用戶在控制臺輸入的成績,并保存到元素中。代碼如下:
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();} }(2) 在對 score 數組排序之前,首先輸出數組中各個元素的值。代碼如下:
System.out.println("排序前的元素值:"); for(double val:score) {System.out.print(val+"\t"); } System.out.println();(3) 通過冒泡排序方法實現對 score 數組的排序,在實現時需要借助一個臨時變量。代碼如下:
public static void main(String[] args) {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 】總結
以上是生活随笔為你收集整理的1.15 Java冒泡排序法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.14 sort()数组排序(升序和降
- 下一篇: 1.16 快速排序法(Quicksort