我正在尝试编写自己的KD-Tree实现,最后是kNN实现。而且我在理解KD-Tree如何构造搜索树方面有些困难。

在Wikipedia上,它表示找到值的中位数并将其用作树的根。

但是,如果有很多维度,您将如何计算中位数?

最佳答案

您找不到几个维度的中位数(实际上,多维数字没有有意义的顺序)。在kd树的每个级别,您都专注于一个维度。您可以根据此维度选择中位数,而忽略其他组成部分。

请注意,您可以使用除中位数以外的许多条件,具体取决于您要执行的操作。同样,尽管实际上每个方案都是正确的,但选择一种好的方案来确定每个节点的尺寸也是一项技术。

关于data-structures - KD-Tree实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21015021/

10-13 00:28