Arrays 比较两个阵列

Arrays 比较两个阵列,arrays,compare,Arrays,Compare,我有两个相同长度的数组a和b 我想比较a的每个元素和b的每个元素。这两个数组没有排序。如何使用复杂性低于^2的算法实现目标?喜欢开着还是开着 最终目标是从这些数组中找到一对数字,这样它们的差异就是数组的长度。如果两个数组的大小相同,则启动一个循环,遍历两个数组的索引,并使用比较运算符进行比较 您可以在merge sort Onlogn中使用,然后从末尾比较数组 2onLog+On我认为这符合您的要求,并且与您的排序算法一样高效: 创建临时数组a1、a2,其中分别包含数组长度n的减号和加号元素。

我有两个相同长度的数组a和b

我想比较a的每个元素和b的每个元素。这两个数组没有排序。如何使用复杂性低于^2的算法实现目标?喜欢开着还是开着


最终目标是从这些数组中找到一对数字,这样它们的差异就是数组的长度。

如果两个数组的大小相同,则启动一个循环,遍历两个数组的索引,并使用比较运算符进行比较

您可以在merge sort Onlogn中使用,然后从末尾比较数组
2onLog+On

我认为这符合您的要求,并且与您的排序算法一样高效:

创建临时数组a1、a2,其中分别包含数组长度n的减号和加号元素。 连接a1和a2并对结果进行排序,以获得一个'。 对b排序以获得b'。 启动计数器i=0,j=0 当一个'我'=b'[j]:
你到底想完成什么?如果您只想将的所有内容与b的所有内容进行比较,则需要使用^2。我的观点是,降低复杂度的整个想法都出现了,因为你不必做所有的运算。是的,我想比较a和b的所有运算,但我想要一个算法在^2时间内完成。但是为什么你需要比较数组呢?这些比较的目的是什么?如果您只是为了比较而比较元素,那么不可能在少于^2的时间内完成。但是如果你有比较每个元素的目的,比如找到两个数组的交集或者它们是否有相同的元素,那么这就完全改变了你的问题。对第二个数组进行排序,然后迭代第一个数组并对第二个数组中的每个元素进行二进制搜索。据我所知,这应该是输入,A:-2,4,6,7和B:-8,10,12,22所以你的答案是肯定的,因为第4,8对或第6,10对有差4,这是数组的长度,对吗?但这只会比较相同索引的元素。我想比较bot数组的所有元素。然后你可以使用嵌套循环第一个循环迭代第一个数组嵌套循环迭代第二个数组。然后,对于第一个数组的第n个元素,它将通过嵌套循环比较第二个数组的所有元素。先生,你太棒了。非常感谢。