我需要在处理中编码最近的邻域算法,但是我在将算法实现为伪代码时遇到了麻烦。我有一个模板与我的数组和我正在使用的表中的所有数字我只需要使用该算法。我正在使用2D数组。请有人帮忙
答案 0 :(得分:0)
我假设您提到的2D数组A
是n
点的数组,其中每个点---来自d
- 维欧氏空间R^d
---表示为大小为d
的数组。
我假设最近的邻域问题是返回给定点R
的距离p
内的点集,即{{1} }}
{q in A | d(p,q) < =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
的数组。