使用不相交集数据结构可以轻松获取图的连通分量。而且,它仅支持增量连通组件。
然而,在我的情况下,删除边缘非常普遍,因此我正在寻找一种算法或新的结构,可以完全动态地维护连接组件(包括添加和删除边缘)
使用不相交集数据结构可以轻松获取图的连通分量。而且,它仅支持增量连通组件。
然而,在我的情况下,删除边缘非常普遍,因此我正在寻找一种算法或新的结构,可以完全动态地维护连接组件(包括添加和删除边缘)
Poly-logarithmic deterministic fully-dynamic algorithms for connectivity, minimum spanning tree, 2-edge, and biconnectivity (Holm, de Lichtenberg and Thorup 2001)提供了一种算法,允许任意边插入、删除和连接查询序列,更新(插入和删除)需要O(log(n)^2)的平摊时间,查询需要O(log(n)/log(log(n)))的时间,其中n是图中顶点的数量。这些时间界限假设图开始没有边。
我只浏览了它38页中的前两页,但不要太害怕——本文描述了一堆关于动态图的新算法(即可以有效修改的图),其中连通性最简单。