2012-06-07 97 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

但是什麼代碼..? –