0

重複の可能性:
配列の中央値を見つけていますか?
一連の数値から平均値、中央値、最頻値、範囲を計算する方法
QuickSort と中央値選択アルゴリズムを組み合わせる

ランダムに生成された配列の中央値を見つけるにはどうすればよいですか?

例: 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 に答える