求两数组比较(交集)的算法?

因为想念才会寂寞 2008-11-28 09:43:44
A数组 htArray = new Array(); 若有长度 5000 for( j

B数组 otArray = new Array(); 若有长度 2000 for (i

求otArray[i][0] =htArray[j][0]


如果笨办法,是循环遍历。性能不是最优

求算法。。。。






...全文
272 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
anjing5566 2008-11-28
  • 打赏
  • 举报
回复
mark
看看有没有比循环更简单的方法

貌似没有吧
  • 打赏
  • 举报
回复
不太明白。
triace_zhang 2008-11-28
  • 打赏
  • 举报
回复
索引是一个快速查找数据的方法。用法类似数据库的B树索引。
比如一个简单的索引,可以对数组一次遍历,用树的形式建立一个三层的树,
第二层是索引的值,第三层也就是叶子是具体元素的物理位置。
对两个数组分别建立索引,然后对索引的第二层排序后再比较一次即可。

比如一个数组
3,0,2,1,0,3

那么索引就是

3 0 2 1 索引值
0,5 1,4 2 3 索引值在数组的物理位置,由0开始
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 triace_zhang 的回复:]
两个数组先排序,后比较。如果数组元素多,且相似度比较大的话可以建索引.
[/Quote]
怎么建索引。。。
有否例子.
2008-11-28
  • 打赏
  • 举报
回复
排序,折半?
triace_zhang 2008-11-28
  • 打赏
  • 举报
回复
两个数组先排序,后比较。如果数组元素多,且相似度比较大的话可以建索引.
  • 打赏
  • 举报
回复
更新一下说明:


两个数组比较(算法) 怎样算最优化!
有两个数组,他们包含的元素 有部分相同,arrayOne,arrayTwo;
目的是将他们的交集存储在 temp数组中;arrayOne中除交集外的部分存储在tempOne数组中;arrayTwo中除交集外的部分存储在tempTwo数组中;
怎样的算法最优化!
D13ay 2008-11-28
  • 打赏
  • 举报
回复
mark

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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