无法从随机值中找到中位数。假设您输入31 62 49 76 56 54 4 7 13 59
之类的数字。两个中间值为49 & 54
。由于它是偶数,你将取两个值并除以2得出答案51.5
。我没有得到正确的答案,我尝试了几种不同的方法。
我想完全理解我的程序会很长时间在这里发布,所以我在这里创建了一个指向该文件的链接:Click here to view。如果您知道我在哪里出错,请告诉我。
答案 0 :(得分:0)
根据Wikipedia:
通过将所有观察值从最低值排列到最高值并选择中间值,可以找到有限数字列表的中位数。如果有偶数个观察值,则没有单个中间值;然后通常将中位数定义为两个中间值的平均值。
因此,如果您使用int
的数组:
public static double median(int[] original) {
int[] array = Arrays.copyOf(original, original.length);
Arrays.sort(array);
int central = array.length / 2;
if (array.length % 2 == 0) {
return (array[central - 1] + array[central]) / 2.0;
}
return array[central];
}