0

可能重复:
查找数组的中值?
如何从一组数字中计算均值、中位数、众数和范围
结合快速排序和中位数选择算法

如何找到随机生成的数组的中值?

例如:它会给我一个像 88,23,93,65,22,43 这样的数组。我正在使用的代码找到中间数字,但它没有排序。

这是我到目前为止使用的代码:

double Median()
{
    int Middle = TheArrayAssingment.length / 2;
       if (TheArrayAssingment.length%2 == 1)
        {
           return TheArrayAssingment[Middle];
        }
    else {
        return (TheArrayAssingment[Middle-1] + TheArrayAssingment[Middle]) / 2.0;
    }
}
4

2 回答 2

1

您的代码看起来不错,但它假定数组已排序。只需排序:

Arrays.sort(TheArrayAssignment);
于 2012-07-21T22:55:34.930 回答
0
public static double median(int[] a) {
    int[] b = new int[a.length];
    System.arraycopy(a, 0, b, 0, b.length);
    Arrays.sort(b);

    if (a.length % 2 = 0) {
        return (b[(b.length / 2) - 1] + b[b.length / 2]) / 2.0;
    } else {
        return b[b.length / 2];
    }
}
于 2012-07-21T22:54:32.617 回答