我正在研究一种比较2个对象,对象1和对象2的算法。每个对象都有5个不同数组的属性,数组A,B,C,D和E.
为了使两个对象匹配,对象1 A中的至少一个项必须在对象2中,并且对象1 B必须在对象2 B中等,通过对象E必须是相似的。每个阵列A-E中的匹配数越多,得分越高。
我是否必须拉动对象1和对象2然后对每个阵列进行n ^ 2复杂度搜索以确定两个阵列中存在哪些?然后我会根据每个阵列中有多少场比赛来得分,然后将它们加起来,总数就会给我得分。
我觉得必须有更好的选择,特别是对于Parse.com
也许我对这个问题一切都错了,有人可以帮我解决这个问题。我会为这个提供一些代码,但我还没有启动代码,因为我无法围绕设计它的最佳方式。虽然已经有两个对象数据库。 谢谢!
正如我所说,我可能会以错误的方式思考这个问题。如果我不清楚我想做什么,请告诉我,我会相应更新。
答案 0 :(得分:0)
最简单的解决方案:
将所有元素从某个数组object1复制到散列表(无序映射),然后迭代第二个对象中的数组,并在地图中查找状态。因此,时间复杂度为O(N)。
智能解决方案:
将所有对象中的元素保留在" naive数组"中,但在数组中,结构化为具有双哈希算法的哈希表。如果是这样,对象1,2中的所有数组都已经预先编入索引,你需要什么 - 迭代数组,包含更少数量的元素,匹配元素与最长的预索引数组。