Exemple #1
0
 /// <summary>
 /// 返回距离x最近的k个点(不包括x本身)
 /// </summary>
 /// <param name="k">近邻数量</param>
 /// <param name="x">需要查询的点</param>
 /// <returns>近邻点的index数组</returns>
 public int[] KQuery(int k, KD_DataType x)
 {
     check = new List<int>();
     check.Add(x.index);
     int[] result = new int[k];
     curQuery = x;
     for (int i = 0; i < k; i++)
     {
         curNearestDist = double.MaxValue;
         Query(root);
         check.Add(curNearestNode);
         result[i] = curNearestNode;
     }
     return result;
 }
Exemple #2
0
 public KD_Tree(KD_DataType[] s)
 {
     dataset = s;
     dimension = s[0].value.Count();
     root = BuildTree(0, s.Count() - 1);
 }