2016-04-03 12 views
0

処理中に最も近い近傍アルゴリズムをコーディングする必要がありますが、アルゴリズムを擬似コードに実装する際に問題があります。私は、私の配列と私がアルゴリズムを使用する必要が今使用しているテーブル内のすべての数字を持つテンプレートを持っています。私は2D配列を使用しています。誰かが私は2次元配列Aあなたが言及しているが、各点--- d次元ユークリッド空間R^d、たとえば、からは---として表されn点の配列であると仮定します処理中に最も近い近傍アルゴリズムを実行する方法

+0

2D配列にはどのような種類のデータが格納されていますか?それは各点が配列として表される点の配列ですか? – blazs

答えて

0

を助けることができるしてくださいサイズdの配列。

Iは、最も近い近傍問題が{q in A | d(p,q) < =R}、すなわち、与えられた点pの距離R内の点の集合を返すことであると仮定します。

vector<int> neighborhood(double** points, int n, int d, int* p, double R) { 
    vector<int> result; // the set of indices of points from the neighborhood 
    for (int i = 0; i < n; ++i) { 
     if (distance(a, i, d, p) <= R) { 
      result.push_back(i); 
     } 
    } 
    return result; 
} 

アルゴリズムは時刻O(nd)で実行されます。関数distanceは、サイズがdの2倍の配列として表される2点間の距離を計算します。

関連する問題