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

C# 比较两个整数数组以进行值比较的最快方法,c#,arrays,performance,C#,Arrays,Performance,我知道数组比较问题已经被问了很多次了,但我很想知道是否有比我迄今为止尝试过的方法更好的方法 要求是比较两个长度相同的整数数组,以检查其中一个数组的值在一对一映射时是否始终大于或等于第二个数组中的值。因此,如果要对数组进行排序(我对它们进行了比较),第一个数组中相同索引处的值应始终大于或等于第二个数组中相同索引处的值 到目前为止,我尝试了两种方式: 对数组进行排序。如果第二个数组中的任何值大于第一个数组中的相应值,则运行for循环并返回false值: 我认为第一种方法效果更好,但是否有更快/更好的

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

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

到目前为止,我尝试了两种方式:

  • 对数组进行排序。如果第二个数组中的任何值大于第一个数组中的相应值,则运行for循环并返回false值:
  • 我认为第一种方法效果更好,但是否有更快/更好的方法达到同样的效果?元素的数量可以在10到10000之间


    谢谢。

    为什么需要比第一种更快或更好的方法?它应该足够快。您可以使用并行线程来比较索引,但似乎过于复杂,仅10000个项目可能不会更快。为什么不使用linq with
    return Array1.SequenceEqual(Array2)
    @mm8我实际上可以使用第一种方法,正如您正确指出的,诚然,就我所拥有的样本量而言,我可能看不到任何性能改进。我只是好奇是否有更好的方法来处理这个问题,因为我的解决方案非常基本。这是一种你做一些事情,然后回想你看到一个在线共享的解决方案,它以一种比你尝试的更有效的方式完成了一些事情,所以我想也许还有更好的方法来处理这个案件,如果只是为了学习体验,那么两个数组中的值不必相等,因此SequenceEqual在这种情况下不起作用。您确定您的实现满足您提供的要求吗?对我来说,
    总是更大
    意味着比较数组中的所有元素,而不仅仅是第一对不相等的元素。例如,应该如何比较数组[1,5,12]和[2,3,8]。为什么需要一种比第一种更快或更好的方法?它应该足够快。您可以使用并行线程来比较索引,但似乎过于复杂,仅10000个项目可能不会更快。为什么不使用linq with
    return Array1.SequenceEqual(Array2)
    @mm8我实际上可以使用第一种方法,正如您正确指出的,诚然,就我所拥有的样本量而言,我可能看不到任何性能改进。我只是好奇是否有更好的方法来处理这个问题,因为我的解决方案非常基本。这是一种你做一些事情,然后回想你看到一个在线共享的解决方案,它以一种比你尝试的更有效的方式完成了一些事情,所以我想也许还有更好的方法来处理这个案件,如果只是为了学习体验,那么两个数组中的值不必相等,因此SequenceEqual在这种情况下不起作用。您确定您的实现满足您提供的要求吗?对我来说,
    总是更大
    意味着比较数组中的所有元素,而不仅仅是第一对不相等的元素。例如,应该如何比较数组[1,5,12]和[2,3,8]?
        Array.Sort(Array1);
        Array.Sort(Array2);
        //
        for (int i = 0; i < Array1.length; i++)
        {
            if (Array2[i] > Array1[i])
            {
                return false;
            }
        }
        return true;
    
        Array.Sort(Array1);
        Array.Sort(Array2);
        //
        return Array.FindIndex(Array2, i => i > Array1[Array.IndexOf(Array2, i)]) >= 0 
          ? false 
          : true;