0

Stack Overflow のユーザーの皆様、こんにちは。

メソッド内で配列比較がいくつ行われるかを調べる方法を見つけようとしています。arrayMaxPos 関数は、n-1 回の比較を行い、サイズ n の配列内の最大要素を見つけます。

私はこれについて頭を悩ませているだけです。

public static void SelectSort(int [] a, int n)
  {
    for (int i = n; i> 1; i--)
    {
      int maxPos = arrayMaxPos(a, i);
      swop(a, maxPos, i-1);
    }
  }

どうもありがとう。

4

3 に答える 3

0

それは ((N-1)^2)/2 の比較になると思います。

于 2012-07-29T21:20:07.240 に答える
0

コードをデバッグするか、印刷ステートメントを間に入れるだけで、独自のものを分析できたはずです。そしてあなたの答えのために-選択ソートはn(n − 1) / 2で配列をソートします

于 2012-07-29T21:26:01.950 に答える
0

あなたの外側のループは n-1 回の反復を取っています。あなたの内側のループ (arrayMaxPos(...)) は n から 1 に取っているので、n/2 です。

したがって、他のいくつかの回答がすでに説明されているように:n(n-1)/2

于 2012-07-29T21:28:46.337 に答える