對 `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))。
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);
}
}