解析多个数组相似性查询



我正在使用将比较2个对象,对象1和对象2的算法。每个对象的属性为5个不同的数组,数组a,b,c,d和e。

为了使两个对象成为匹配,从对象1中至少一个项目必须在对象2 a中,而对象1 b必须在对象2 b中,等通过对象E必须相似。每个数组A-E中的匹配数量较高,匹配将产生的分数较高。

我是否必须拉动对象1和对象2,然后对每个数组进行n^2复杂性搜索以确定两个数组中存在哪个数组?然后,我会通过每个数组中有多少个匹配来获得分数,然后加上它们,总数会给我分数。

我觉得必须有更好的选择,尤其是对于Parse.com

也许我要解决这个问题,所有的问题都可以帮助我解决这个问题。我会为此提供一些代码,但是我尚未启动代码,因为我无法将其围绕设计的最佳方法。但是,两个对象数据库已经到位。谢谢!

正如我所说,我可能以错误的方式考虑了这个问题。如果我不清楚我想做的任何事情,请告诉我,我将相应地更新。

最简单的解决方案:

将所有元素从某些数组1复制到哈希表(未排序的地图),然后在第二个对象中迭代阵列,然后在地图中查找存在。因此,时间复杂性为o(n)。

智能解决方案:

将元素保留在"天真阵列"中的所有对象中,而是在数组中,构造为具有双重哈希算法的哈希表。如果是这样,将已经预先索引对象1、2中的所有数组,您需要什么 - 迭代数组,包含较少的元素,匹配元素与最长的预索引数组。

最新更新