【发布时间】:2012-02-25 04:38:06
【问题描述】:
我想找到一种快速算法,以便找到距离平面上给定点最近的 x 个点。
我们实际上处理的点并不多(在 1,000 到 100,000 之间),但我需要每个点的 x 个最近点。 (其中 x 通常在 5 到 20 之间。)
我需要用 C# 编写它。
更多关于用例的上下文:这些点是地图上的坐标。 (我知道,这意味着我们不完全是在谈论平面,但我希望避免处理投影问题。)在端点附近有很多其他点应该显示为红色,没有太多的点靠近它们的点应显示为绿色。在这两个极端之间,点位于颜色渐变上。
【问题讨论】:
-
我不确定您要求的算法是否最适合您的用例。也许您可以遍历所有点并计算粗略的密度函数(二维直方图)。然后,您可以根据计算的单元格密度为每个点着色,也可以考虑相邻单元格。
标签: c# algorithm map point plane