比较两个整数数组以进行值比较的最快方法

时间:2019-05-15 09:18:26

标签: c# arrays performance

我知道数组比较问题已经问过很多次了,但我很想知道是否有比我迄今为止尝试过的方法更好的方法。

要求是比较两个相同长度的整数数组,以检查其中一个在一对一映射时是否具有总是大于或等于第二个整数的值。因此,如果要对数组进行排序(我做了比较),则第一个数组中相同索引处的值应始终大于或等于第二个数组中相同索引处的值。

到目前为止,我已经通过两种方式尝试了支票:

  1. 对数组进行排序。如果第二个数组中的任何一个值大于第一个数组中的相应值,请运行for循环并返回假值:
    Array.Sort(Array1);
    Array.Sort(Array2);
    //
    for (int i = 0; i < Array1.length; i++)
    {
        if (Array2[i] > Array1[i])
        {
            return false;
        }
    }
    return true;
  1. 在替代方法中,我尝试变得可爱,并使用FindIndex和IndexOf方法的链接一次性获得解决方案。我认为它实际上效率较低,因为据我所知,请纠正我,如果我错了,它遍历数组两次,而不是像以前方法那样遍历数组:
    Array.Sort(Array1);
    Array.Sort(Array2);
    //
    return Array.FindIndex(Array2, i => i > Array1[Array.IndexOf(Array2, i)]) >= 0 
      ? false 
      : true;

我认为第一种方法效果更好,但是有没有更快/更好的方法来达到相同的结果?元素数范围可以从10到10000。

谢谢。

0 个答案:

没有答案