问题描述
我正在尝试实现一种有效的kd-tree,该方法使用索引而不是将点存储在其子树的结构中。 在创建左右子树的过程中,它连接到所需的点,但不会连接到其他所需的点。对于某些数据,结果没有任何意义。在当前的实现中,让我们至少举例说明三点 (5,4),(9,6),(7,2)。这棵树目前正在构建这样的东西:
}}
虽然应该是这样的:
#
# (9,6)[1]
# / \
# / B
# /
# (7,2)[2] (5,4)[0]
# / \
# B B
其中#
# (7,2)[2]
# / \
# / \
# / \
# (5,4)[0] (9,6)[1]
# / \ / \
# B B B B
是空白/空值,索引在方括号(B
)中给出。添加更多数据可以使树的结构变得荒谬。
为了找到中值,我使用了Quickselect method。代码类似于此处给出的伪代码。
关注的功能是[]
和kdtree_median_find
。有人可以建议我在逻辑上错在哪里吗?
请询问注释中是否有不清楚之处。我将尝试进一步解释:-)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)