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

Java 經典算法:三整數由小到大排序(交換排序法)

     編輯:Java 相關知識

輸入三個整數,輸出由小到大排序結果。本文展示交換排序法邏輯,並分析其與冒泡、選擇排序的關聯。

題目

輸入 x, y, z,輸出升序序列。

交換排序邏輯

  1. 比較 x 與 y,若 x > y 交換 → 確保 x 為三數中最小。
  2. 比較 x 與 z,若 x > z 交換 → x 確定為最小值。
  3. 比較 y 與 z,若 y > z 交換 → y, z 有序。

完整程式碼


import java.util.Scanner;

public class ThreeNumberSort {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("請輸入三個整數(空格分隔):");
        int x = sc.nextInt();
        int y = sc.nextInt();
        int z = sc.nextInt();
        sc.close();

        // 確保 x 最小
        if (x > y) { int t = x; x = y; y = t; }
        if (x > z) { int t = x; x = z; z = t; }
        // 確保 y <= z
        if (y > z) { int t = y; y = z; z = t; }

        System.out.printf("排序結果:%d, %d, %d%n", x, y, z);
    }
}

執行範例

請輸入三個整數(空格分隔):30 10 20
排序結果:10, 20, 30

擴展:通用化與替代方案

方法程式碼優點
Arrays.sortint[] a = {x,y,z}; Arrays.sort(a);標準庫、可讀性高、支援任意長度
Stream APIIntStream.of(x,y,z).sorted().toArray()函數風格、易併行
Collections.sortList.of(x,y,z).stream().sorted().toList()物件型別、不可變列表
手寫冒泡雙層迴圈相鄰比較交換教學示範排序原理

複雜度分析

  • 固定 3 數:比較 3 次、交換 ≤ 3 次,O(1)。
  • 推廣到 n 數:交換排序/冒泡排序 O(n²),不適合大規模資料。

總結

三數排序是理解比較交換邏輯的入門範例。實務開發中,優先使用 Arrays.sort 或 Stream API,僅在嵌入式、面試或教學場景手寫排序邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved