求2个数组的交集,要求高效率算法

hellogiti 2009-03-20 11:56:49
整数数组不考虑有重复的数。
这样2个数组,求交集。

但是数组非常大,要求效率要高。

交集返回到vectorC
能用的头文件就这些:

#include <vector>

void Intersect( const vector <int>& vectorA, const vector <int>& vectorB, vector <int>& vectorC )
{
}

用什么算法好?
先排序再穷举?
哈希?
我真分不出哪个快,最好能给出效率O。
代码写出来再加分。
...全文
214 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2009-03-21
  • 打赏
  • 举报
回复
用hash虽然快(O(n)),但内存消耗很大,尤其是数组很大的时候。
用排序+归并也可以,N*logN

如果数组极大,那么就需要外排序了,或者用分治法处理。
oyzdz1988 2009-03-21
  • 打赏
  • 举报
回复
直接穷举好了
liusichen_0 2009-03-21
  • 打赏
  • 举报
回复
先排序,找到两个区间的重叠区域,再穷举重叠的区域

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧