使用 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