變數假設
struct Point { float x , y ; }
Point a[m];
Point b[n];
最大點對 問題是在 a 裡面,找最近的兩點 ,
( ↑雖然這我也不會有效的方法 )
但我的問題是,把 a[i] 依序放入 b 中,
從 b 裡找出與 a[i] 最近的點,
暴力法用虛碼表示如下
for(i = 0 : m-1 )
{
min_idx = 0 ;
min_dist = distance( a[i], b[min_idx] );
for(j = 1 : n-1)
{
dist = distance( a[i] , b[j] ) ;
if ( dist < min_dist)
{
min_dist = dist ;
min_idx = j;
}
}
// min_dist , min_idx 是要求的 , 到時候會全部存下來
}
想請教是否有什麼算法可較快完成上述需求?
或我該找什麼 keyword ?
先謝謝各位。