我需要帮助解决一个几何问题。 考虑一个点集。 我们称点的数量为N。
我们用d表示欧几里得距离,dmax表示一个值。
仅当距离d(p1,p2)< dmax时,两个点p1和p2才会相连。
问题是创建一个算法,返回连接组件的尺寸列表。
例如,在下图中,算法应返回
[3, 2, 4, 1]
我用红色绘制了连接线,但最初我们只有点(这里是黑色)。 如有必要,程序应计算所有连接。 下面的图
我有两个算法,一个是迭代的,另一个是递归的。 我使用了 DBScan。 但它不够快。 复杂度为O(N ^ 2)
如果可能的话,我希望它更快,具有O(N)或O(N * log(N))的时间复杂度。
我读过深度优先搜索算法,但我不确定...
感谢您的帮助