Total Pageviews

2019/08/15

[Java] 如何計算中位數

Sample code:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
    /**
     * 將一組數值資料由小到大排列,最中間的數值即為中位數。
     * 若有偶數個資料,則取最中間兩個數值的算術平均數為中位數;
     * 若有奇數個資料,則取最中間的數值為中位數。
     *
     * @param sortedArray 由小到大排列的數值資料
     * @return 中位數
     */
    public double computeMedian(int[] sortedArray) {
        double median = 0d;
        int totalElements = sortedArray.length;
        if (totalElements % 2 == 0) {
            int sumOfMiddleElement = sortedArray[totalElements / 2] + sortedArray[totalElements / 2 - 1];
            median = ((double) sumOfMiddleElement) / 2;
        } else {
            median = (double) sortedArray[totalElements / 2];
        }

        return median;
    }

No comments: