Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较两个整数数组并检查它们的值是否相等 我想知道最好的方法是比较两个“强>未排序的,如果它们使用C++有相等的值,那么检查它们吗? 我在O(nlogn)中找到了一个解决方案,但是有O(n)解决方案吗?如果是,怎么做_C++_Arrays_Compare_Time Complexity_Binary Search - Fatal编程技术网

比较两个整数数组并检查它们的值是否相等 我想知道最好的方法是比较两个“强>未排序的,如果它们使用C++有相等的值,那么检查它们吗? 我在O(nlogn)中找到了一个解决方案,但是有O(n)解决方案吗?如果是,怎么做

比较两个整数数组并检查它们的值是否相等 我想知道最好的方法是比较两个“强>未排序的,如果它们使用C++有相等的值,那么检查它们吗? 我在O(nlogn)中找到了一个解决方案,但是有O(n)解决方案吗?如果是,怎么做,c++,arrays,compare,time-complexity,binary-search,C++,Arrays,Compare,Time Complexity,Binary Search,请让我告诉你,这不是一个大学问题,我想知道ACM的问题解决 谢谢。这取决于你的价值观以及你愿意为此花费多少内存。对于包含范围为0的唯一整数x的数组,在O(n)解决方案中,数组的长度是否相等?数组中元素的顺序重要吗?例如[9,2,5]和[5,2,9]相等吗?我很确定O(n lgn)是你能做的最好的了。@o11c是的,除非他对数据做任何其他假设,否则我相信你是对的。不,数组不是等长的。如果它们不是等长的,这很容易,对吗?因为这样他们就不平等了。或者你如何定义平等!?感谢您的回复,但值不在范围内。例如

请让我告诉你,这不是一个大学问题,我想知道ACM的问题解决


谢谢。

这取决于你的价值观以及你愿意为此花费多少内存。对于包含范围为0的唯一整数x的数组,在O(n)解决方案中,数组的长度是否相等?数组中元素的顺序重要吗?例如[9,2,5]和[5,2,9]相等吗?我很确定
O(n lgn)
是你能做的最好的了。@o11c是的,除非他对数据做任何其他假设,否则我相信你是对的。不,数组不是等长的。如果它们不是等长的,这很容易,对吗?因为这样他们就不平等了。或者你如何定义平等!?感谢您的回复,但值不在范围内。例如,我们可能有一个大小为20的数组,值为23967!嗯,另一个问题是(特别是对于像20这样的小n),实际上你并不太关心O(…),而是它所需要的绝对时间。预因子,即a*n和b*n*log(n)中的a和b,可能会因方法的不同而显著不同,因此,如果您通常处理的是小型数组,最好在绝对时间方面为典型大小寻找最佳方法,我可能遗漏了一些东西,但这对我来说似乎是无效的,即使有一系列的值。例如,如果array1=[1,1,2,2]和array2=[3,3,4,4]不算[0,2,2,2]?根据我对您的解决方案的理解,这会将这两个数组标记为相等。编辑:我错过了“唯一”这个词……是的,它们必须是唯一的,才能使上述内容起作用。但正如答案中提到的,您可以对具有非唯一值的数组应用相同的方法(使用两个不同的计数数组)。
int array1[N];
int array2[N];

//get the values into array1 and 2 from somehwere

char count[c]{0};
for(size_t i=0; i<N; i++) {
    count[array1[i]]++;
    count[array2[i]]++;
}