中文

使用 MapReduce 构建平衡的 k-d 树

数据结构与算法 2020-11-03 v7

摘要

k-d 树的最初描述认识到,用于构建 AVL 树或红黑树的再平衡技术不适用于 k-d 树。因此,为了构建平衡的 k-d 树,必须在建树前获取全部数据,随后通过对数据递归细分来建树。一种构建平衡 k-d 树的算法在每次递归细分时寻找数据的中位数,并在 O(n log n) 时间内建树。一种新算法通过在建树前对 k 个维度中的每个维度对数据进行预排序,然后在递归细分过程中保持这 k 个预排序的顺序,从而在 O(kn log n) 时间内构建平衡 k-d 树。该新算法适合通过 MapReduce 执行,并允许构建和搜索表示为分布式图的 k-d 树。

关键词

引用

@article{arxiv.1512.06389,
  title  = {Building a Balanced k-d Tree with MapReduce},
  author = {Russell A. Brown},
  journal= {arXiv preprint arXiv:1512.06389},
  year   = {2020}
}

备注

7 pages, 10 figures