我究竟做错了什么?
中位数始终为-0.5结果或0.5(如果((m) + (m+1))/2;
public static double mediana(List<Double> liczby ){
Collections.sort(liczby);
int n = liczby.size()/2;
double m;
m = get(n);
if (liczby.size() % 2 == 0){
return ((m) + (m-1))/2;
}
else {
return m;
}
}
最佳答案
在您的代码中,问题出在这一行。
return ((m) + (m-1))/2;
它应返回第n个数字和第(n-1)个数字的平均值,即n =(列表大小)/ 2。你可以试试看
public static double mediana(List<Double> liczby ){
Collections.sort(liczby);
int n = liczby.size()/2;
double m;
if (liczby.size() % 2 == 0)
m = (liczby.get(n) + liczby.get(n-1))/2;
else
m = liczby.get(n);
return m;
}