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) 算法,它不能变得更快。

于 2013-06-09T02:26:24.387 回答
1

假设我在 5 张纸上写了 5 个数字并朝下。我给你看4个数字。然后,我问你5个数字中最小的数字是多少。你能在没有看到第五个数字的情况下回答这个问题吗?如果答案是否定的,那么当然,你不能变得更快。

于 2013-06-09T02:31:31.687 回答