如何获得NetworkX图的巨大组件?

2024-03-29 10:49:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道NetworkX最近是否将其中一个方法调整为生成器而不是返回一个列表,但我正在寻找一种获得图的GC的好方法。

我有一个工作,但看起来效率很低的片段:

# G = nx.Graph()
giant = sorted(nx.connected_component_subgraphs(G), key=len, reverse=True)[0]

有更干净的方法吗?


Tags: 方法keynetworkx列表lengcgraphcomponent
1条回答
网友
1楼 · 发布于 2024-03-29 10:49:51

在networkx 1.9中,connected_components_subgraphs返回一个迭代器(而不是一个排序列表)。迭代器产生的值是not in sorted order。所以要找到最大的,使用max

giant = max(nx.connected_component_subgraphs(G), key=len)

排序为O(n logn)。取最大值是O(n)。

相关问题 更多 >