首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 經典範例:三數排序(氣泡排序法)

     編輯:Java 相關知識

Java 基礎演算法練習:陣列排序輸出三個數字

本範例展示兩種方式對三個整數由小到大排序:一種使用簡單的氣泡排序邏輯,另一種利用 Arrays.sort() 內建方法。適合初學者理解排序基本原理與 Java 陣列操作。

範例一:手寫氣泡排序

public class Ex34 {
    public static void main(String[] args) {
        int[] arrays = {800, 56, 500};
        // 氣泡排序:外層控制輪數,內層相鄰比較交換
        for (int i = arrays.length; --i >= 0; ) {
            for (int j = 0; j < i; j++) {
                if (arrays[j] > arrays[j + 1]) {
                    int temp = arrays[j];
                    arrays[j] = arrays[j + 1];
                    arrays[j + 1] = temp;
                }
            }
        }
        for (int n = 0; n < arrays.length; n++)
            System.out.println(arrays[n]);
    }
}

範例二:使用 Arrays.sort()

import java.util.Arrays;
public class SortDemo {
    public static void main(String[] args) {
        int[] nums = {800, 56, 500};
        Arrays.sort(nums); // 內部使用 Dual-Pivot Quicksort (基本型別)
        for (int n : nums) System.out.println(n);
    }
}

氣泡排序逐輪追蹤(輸入 800, 56, 500)

輪次比較過程陣列狀態
1800>56 交換 → 56,800,500
800>500 交換 → 56,500,800
56, 500, 800
256>500 不交換56, 500, 800 (已有序)

擴充:通用三數排序方法

public static void sortThree(int a, int b, int c) {
    int[] arr = {a, b, c};
    Arrays.sort(arr);
    System.out.printf("排序結果:%d, %d, %d%n", arr[0], arr[1], arr[2]);
}

學習重點

  • 雙層迴圈邊界條件:i 從 length 遞減至 1,j 從 0 到 i-1。
  • 交換三步驟:temp = a; a = b; b = temp;。
  • Java 陣列固定長度,Arrays.sort() 原地排序,回傳 void。
  • 基本型別陣列排序用快速排序(不穩定),物件陣列用 TimSort(穩定)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved