2012-06-07 80 views
3

我有一个二维数组,其中有不同位置的各种条目。然而一些职位具有相同的价值(比如说5)。我需要从其他定位元素中找到值为5的最近块。查找二维数组中的最近邻点

影像处于这种链接:) This is the image to understand the problem better

在上面此PIC。我们可以使用数字图像处理的概念来找出每个块之间的m距离。但是如果问题空间太大(假设有100X100或200X200的阵列),那么以这种方式解决方案将需要时间。

通过解决方案,我找到了这些链接。 Wikipedia Link for Nearest Neighbour

除此之外如何在编程中映射这整个事情......?

+0

有一个'2d'数组在哪里? – Quassnoi

+0

你会为不同的职位查询最近的搜索一次或多次吗? – Nobody

+0

链接无法正常工作。 – sephoy08

回答

0

最简单的(也许不是最有效的)方式是,如果你使用维基百科的方法#1如下:

循环,虽然所有的坐标对,找出它们之间的距离。公式:sqrt((x2-x1)^ 2 +(y2-y1)^ 2)

记录哪对最接近您正在测试的点以及最近的距离。

每次计算后,测试距离是否更短;如果是,则覆盖距离和最近对变量。

我可以扩展这个,如果你喜欢。

+0

斯科特,如果你这样做..这是很好的几点..但如果你是在处理10万点同时,这不会是一个非常好的方法..我正在计划这个基于地图的竞技场,其中我有10405点存储在数据库中。 –

2

你可以尝试任何PL/SQL代码,然后你可以从那里得到最近的点。

+0

但是什么代码..? –