具有O(n)时间和O(n)空间的算法来比较两个数组

时间:2017-01-22 03:32:47

标签: arrays algorithm

A和B是两个数组,其中n个元素的范围为1到n ^ 2.

1.如何检查A的元素在O(n)时间和O(n)空间中是否不同

2.如何检查A和B在O(n)时间和O(n)空间中是否有共同元素。

两种算法都不应使用散列集或任何其他高级数据结构。 A和B只是简单的数组。

2 个答案:

答案 0 :(得分:0)

如果对数组进行排序,则两个操作都很容易在线性时间内完成。 n ^ 2的界限允许线性时基数排序(基数n)。

答案 1 :(得分:0)

您可以以类似合并的方式在O(n)时间内比较两个已排序的数组。

但是可以对O(n)中给定限制的数组进行排序吗?是的。 Cormen等算法课程包含关于这种排序的分配(n ^ 2范围内的整数数组),用于基数/数字排序。

问题看起来像是家庭作业,所以我认为这个线索就足够了。