【发布时间】:2023-03-27 22:41:01
【问题描述】:
我需要解决一个计算问题,该问题归结为在两组之间搜索相互最近的点对。问题是这样的:
给定欧几里得空间中的一组点 A 和一组点 B,找到所有对 (a,b),使得 b 是 B 中离 a 最近的点,a 是 A 中离 b 最近的点。
集合 A 和 B 的大小大致相等,我们称这个大小为 N。对于我的特定问题,N 大约是 250,000。
蛮力解决方案是将每个点与每个其他点进行比较,这具有二次时间复杂度。有没有更有效的算法来做到这一点?
【问题讨论】:
-
这真的取决于您的数据是如何保存/组织的。我建议查看此 wiki 页面 en.wikipedia.org/wiki/Kd-tree 以获取一些想法。这可以为您提供更有效的搜索,但也可能需要重新格式化您的数据点。
-
纯技术问题,属于 StackOverflow。
-
我第二个 @Peter 这是一个特定的问题,因此应该在 SO
标签: algorithm performance computational-geometry