我有一个关于为我的问题找到最快算法的好方法的问题:
问题: 我有一个 3D 立方体网格,其中包含 1 或 0 的体素。它存储为扁平数组。如果多个 1-voxel 彼此相邻,则它们一起形成一个簇。我想检测小于给定大小(n)的集群。
当前解决方案(慢):
对于每个 1-voxel,我进行广度优先搜索以查找它有多少个邻居,以及这些邻居有多少个邻居,等等,直到达到一定数量的邻居 (n)。
当将 n 设置为我的首选数量 n>50 时,这非常慢,因为总立方体边缘大小为 64
有什么不同的方法可以做到这一点,而不是广度优先搜索?一切都是开放的:甚至可能是来自计算机视觉的东西,比如 3d pooling 或其他什么,但我有点卡住了。还是我最好尝试优化我目前的方法?如果有兴趣,我在代码审查中发布了我的 c# 代码
提前致谢!