【发布时间】:2017-02-23 20:24:52
【问题描述】:
这是一种算法问题,与任何特定语言无关。
假设我有Np 点粒子在二维平面上具有连续(读取double)x, y 坐标。二维平面被划分为N ⨉ N 个单元。
对于每个粒子,我想要一种快速的方法(比O(Np^2) 更快)在同一个单元格中找到其他粒子。 另外,我不想在内存使用上走得太远,所以我不想再存储一个N ⨉ N + Np 数组。
我“发明”了一种棘手的方法来实现这一点,但我提出这个问题是为了以防万一有一种规范的方法可以做到这一点。
【问题讨论】:
-
为每个粒子添加一个字段,说明它在哪个单元格中?
-
也许他正在寻找 Voronoi 图...
-
@SirGuy,但是你需要解析所有粒子
Np^2次。 -
能够廉价地更新所使用的数据结构很重要,例如,在粒子移动了变化的单元格之后?还是只是应该优化的查询?
-
@BitTickler,你能解释一下在这种情况下如何利用 Voronoi 图吗?
标签: arrays algorithm particles