我需要从大量对象中找到最多similar
到期望的object
。
在这种情况下object
- 只包含我们必须比较的数值的内容(例如,在x
和y
坐标下面。
我怎样才能以最快的方式做到这一点?
P.S。如果需要,可以在搜索之前对对象数组进行排序。
P.S.S。我已经在math.stackexchange.com上问了这个问题,但有些用户说我也可以在这里找到一些东西。
答案 0 :(得分:0)
这称为distance function。最简单的是取相应坐标的差异;取每个差异的绝对值;为所有坐标添加这些坐标,这是两组点之间的距离。用更多的代数术语来说:
让我们调用参考数组D(对于Desired),点(Dx1,Dy1),(Dx2,Dy2),...和目标数组(Tx1,Ty1),(Tx2,Ty2) ,...在上面的例子中你有10个目标。
|Dx1 - Tx1| + |Dy1 - Ty1| +
|Dx2 - Tx2| + |Dy2 - Ty2| +
...
这是你和D之间的距离。 对所有十个目标执行此操作,并将最小距离目标报告为最佳匹配。