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

Java Double 陣列排序示例:氣泡排序與整數過濾顯示

     編輯:Java 相關知識

需求說明

對 `double[]` 進行升冪排序,並將整數值(如 9.0)以無小數點格式輸出,非整數保留小數。

完整代碼

package airthmatic;

public class Demo10 {
    public static void main(String[] args) {
        double[] n = {9, 1.2, 5, 3.2, 1.1};
        orderNum(n);
    }

    /** 排序並輸出 */
    public static void orderNum(double[] n) {
        // 氣泡排序
        for (int i = 0; i < n.length - 1; i++) {
            for (int j = 0; j < n.length - 1 - i; j++) {
                if (n[j] > n[j + 1]) {
                    double temp = n[j];
                    n[j] = n[j + 1];
                    n[j + 1] = temp;
                }
            }
        }

        // 輸出:整數值不顯示小數點
        for (double val : n) {
            if (val == (int) val) {
                System.out.println((int) val);
            } else {
                System.out.println(val);
            }
        }
    }
}

執行結果

1
1.1
1.2
3.2
5
9

改進建議

  • 生產代碼請使用 Arrays.sort(n)(雙軸快速排序,O(n log n))。
  • 浮點數比較相等建議用誤差範圍:`Math.abs(val - (int)val) < 1e-9`。
  • 若需降冪排序,可排序後反轉陣列或使用 `Collections.reverseOrder()`(需包裝為 `Double[]`)。

Arrays.sort 版本


import java.util.Arrays;

public static void orderNumModern(double[] n) {
    Arrays.sort(n);
    for (double val : n) {
        System.out.println(val == (int) val ? (int) val : val);
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved