我正在读C中的kd树实现。这是它的一些部分。问题在于findmedian函数。我不明白
的实现*md = start +(end-start)/2;
...... - >其他不相关的代码行
struct kd_node_t
{
double x[3];
struct kd_node_t *left, *right;
};
struct kd_node_t* findmedian(struct kd_node_t *start, struct kd_node_t *end, int idx)
{
......
struct kd_node_t *p, *store, *md = start + (end - start) / 2;
......
}
答案 0 :(得分:1)
嗯,这里实现的只是“两个指针之间的中途”start
和end
。如果实现需要注意在内存中这个位置有一个有意义的值(可能是中位数),那么你很幸运,否则你会得到垃圾......