【发布时间】:2016-03-11 10:48:55
【问题描述】:
public static double calcMedian(int[] array) {
int n = array.length;
int middle = n / 2;
double median=0;
for (int i = 0; i < n; i++) {
if ((n % 2) == 1) {
median = array[middle];
} else if((n % 2) == 0){
median = (array[middle-1] + array[middle]) / 2;
}
}
return median;
}
当我有奇数个元素时,我没有得到正确的中位数。例如,如果我的数组是 [1 3 6 7 10 12],则中位数应该是 6.5。我得到的是6。我不明白为什么。提前致谢
【问题讨论】: