1

たとえば、次のような配列があります。

int[] arrayOne = new int[10]{3,1,29,5,2,4,7,10,38,42};

以下は、配列から最小数を選択する私の方法です

       int pickMinNumber (int[] intArray)
        {
          int result = intArray[0];
          for (int i = 0; i < arrayOne.Length; i++)
           {
                if(intArray[i] < result)
                   result = intArray[i];
           }
          return result;
        }

最小数を選択するより迅速な方法はありますか?

4

4 に答える 4

6

最小数を選択するより迅速な方法はありますか?

いいえ、これは手っ取り早いです。配列がソートされているか、その要素が他の特別な配置戦略に従わない限り、最小値をこれ以上速く見つけることはできません。最小値を見つけるためにすべての要素を調べる必要があるため、どのアルゴリズムでもコードと本質的に同じことを行います。

于 2013-06-09T02:20:12.113 に答える
3

LINQ で Min() 関数を使用する

var min = arrayOne.Min();
于 2013-06-09T02:17:31.207 に答える
2

線形検索とも呼ばれるこのアルゴリズムは、O(n) アルゴリズムである 1 つのループのみを使用し、これ以上速くなりません。

于 2013-06-09T02:26:24.387 に答える
1

5枚の紙に5つの数字を書いて、それを裏向きにするとしましょう。4つの数字を示します。では、5 つの数の中で最も小さい数は何かと尋ねます。5番目の数字を見ずにこの質問に答えられますか? 答えが「いいえ」の場合、もちろん、これ以上速くなることはできません。

于 2013-06-09T02:31:31.687 に答える