我正在尝试比较第一个数组的值,以查看它是否存在于另一个数组中。我有两个 for 循环,它适用于较小的数组大小,但是当我增加长度时,编译需要很长时间。
bool value_check(int arr1[], int arr2[], int nums)
{
int value = 0;
for(int i = 0; i < nums; i++)
{
value = arr1[i];
for(int j = 0; j < nums; j++)
{
if (value == arr2[j])
{
return true;
}
}
}
return false;
}
如何尽可能有效地比较两个不同长度的数组?
通常要做的是对数组进行排序。完成后,比较很快,因为您可以一起遍历两个数组。
对数组进行排序可以在 O(n log(n)) 时间内完成,然后比较它们只需要 O(n) 时间,所以总体上你会得到 O(n log(n)) 复杂度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句