从整数数组中选择最小数字的任何更快的方法?

时间:2013-06-09 02:15:39

标签: c#

例如,我有一个如下所示的数组:

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 个答案:

答案 0 :(得分:6)

  

有没有更快捷的方式来选择最小数量?

不,这是最快的。您无法更快地找到最小值,除非对数组进行排序,或者其元素遵循任何其他特殊放置策略:您必须检查所有元素以找到最小值,因此任何算法都将与您的代码基本相同。

答案 1 :(得分:3)

使用LINQ中的Min()函数

var min = arrayOne.Min();

答案 2 :(得分:2)

这种算法也称为线性搜索,它只使用一个循环即O(n)算法,它不能更快​​。

答案 3 :(得分:1)

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