标签: algorithm simulation computational-geometry
在分子模拟中,人们经常使用邻居列表算法(单元列表/ Verlet表)来计算每个粒子的邻居粒子。
然后,运行模拟,每个粒子在运行时都知道他的邻居。 构建此类邻居列表的计算工作量与粒子数(O(N))呈线性关系。
另一方面,kd-tree通常用于在许多应用程序中定位最近的邻居。构建这样的树也与粒子的数量成线性关系。
那么,最好的是什么?如果尺寸适中2 / 3D且范围为 搜索不会改变?
答案 0 :(得分:0)
从wiki的k-d tree和cell list快速查看应用程序,搜索,添加/删除和计算交互的复杂性因使用的每种数据结构和算法而异,因此取决于是否粒子的数量可以动态变化或保持不变,效率会有所不同。
Furthernore k-d树可用于其他应用程序或提供其他功能
.. k-d树是几个应用程序的有用数据结构,例如 作为涉及多维搜索关键字的搜索(例如范围 搜索和最近邻居搜索)。 k-d树是一种特殊情况 二进制空间分区树。