Mat*_*els 17
我将不得不同意jk和Ewan制作Voronoi图表.这将分割多边形中的空间.K中的每个点都有一个多边形,描述最接近它的所有点.现在当你得到一个点的查询时,你需要找到它所在的多边形.这个问题称为点位置,可以通过构造梯形图来解决.
jk已经使用Fortune的算法链接到Voronoi图的创建,该算法采用O(n log n)计算步骤并且花费O(n)空间.
本网站向您展示如何制作梯形地图以及如何查询它.您还可以在那里找到一些边界:
预期创建时间:O(n log n)
预期空间复杂度:O(n)
但最重要的是,预期查询时间:O(log n).这(理论上)优于kD树的O(√n).
我的来源(上面的链接除外)是:计算几何:算法和应用程序,第六章和第七章.
在那里,您将找到有关这两种数据结构的详细信息(包括详细的证明).Google图书版仅包含您需要的部分内容,但其他链接应足以满足您的需求.如果你对这类东西感兴趣,那就买这本书(这是一本好书).