我試圖找出在Java中,以下問題(雖然它可以在幾乎做任何其他語言):的Java:距離度量算法設計
我給整數值的兩個數組,xs
和ys
,代表x軸上的數據點。它們的長度可能不完全相同,但都是> 0,並且它們不需要排序。我想要計算的是兩個數據點之間的最小距離度量。我的意思是,對於每個x
我找到ys
集合中最接近的y
並計算距離,例如(x-y)^2
。例如:
xs = [1,5]
ys = [10,4,2]
應該返回(1-2)^ 2 +(5-4)^ 2 +(5-10)^ 2
距離度量並不重要,它的算法我我正在考慮將這兩個數組中的數組和排序索引排序,以便實現比bruteforce更好的效果(對於x中的每個元素,掃描ys中的所有元素以找到最小值),這是O(len1 * len2)
。
這是我自己的問題,我正在努力,而不是一個家庭作業問題。所有的提示將不勝感激。
在你的例子中,它實際上看起來好像每個'y'你都找到最接近的'x' - 你可能意味着對於更大集合中的每個元素,你可以找到更小集合中最接近的元素,期望在距離計算中存在與更大集合中的元素一樣多的項。 –
是的,它是較大的一套我比較小的一套。任何想法如何使它比O(len1 * len2)更好? – Bober02