【问题标题】:Why need to alternate dimension in kd-tree construction为什么需要在 kd-tree 构建中交替维度
【发布时间】:2015-11-12 17:46:57
【问题描述】:

我有一个关于在 kd-tree 算法中划分空间的方式的问题。

假设我在平面上有点,坐标为 (x,y)。假设当点在同一条线上时,我们不在特定情况下。我在想为什么我们需要交替分割坐标,在一个级别,使用 x 轴,下一个级别,使用 y 轴。如果我们只使用 x 方向来分割空间,那么重要的是,我们总是有一棵二叉树,并且搜索算法总是取 log(n) 的平均值(假设我们有相对平衡良好的树)。

当我通过交替分割方向来分割空间时,什么给了我更多?不知道是不是和多维的一些一般概率性质有关?

【问题讨论】:

    标签: kdtree multivariate-partition


    【解决方案1】:

    我认为当您开始搜索树时会出现问题,例如使用窗口查询(矩形查询)。

    让我们假设一个矩形数据集,其点在-1,0001,000 之间在各个方向上均匀分布。 如果您按x 排序,那么应该返回所有带有(-900 < x < 900) && (1 < y < 10) 的点的查询可能必须扫描几乎整个树。 log(n) 搜索仅在您的查询仅限制 x 而不是 y(即 (1<x<10) && (-inf<y<+inf))时才有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多