我不知道NetworkX最近是否将其中一个方法调整为生成器而不是返回列表,但我正在寻找一种好的(更好的)方法来获取图形的GC.
我有一个工作但非常低效的片段:
# G = nx.Graph()
giant = sorted(nx.connected_component_subgraphs(G), key=len, reverse=True)[0]
Run Code Online (Sandbox Code Playgroud)
有更干净的方式吗?
小智 20
在 networkx 2.4 中,nx.connected_component_subgraphs()已弃用,因此以下内容应该有效:
Gcc = sorted(nx.connected_components(G), key=len, reverse=True)
G0 = G.subgraph(Gcc[0])
Run Code Online (Sandbox Code Playgroud)
G0 是巨型组件。
unu*_*tbu 14
在networkx 1.9中,connected_components_subgraphs返回一个迭代器(而不是一个排序列表).迭代器产生的值不按排序顺序排列.所以要找到最大的,使用max:
giant = max(nx.connected_component_subgraphs(G), key=len)
Run Code Online (Sandbox Code Playgroud)
排序为O(n log n).取最大值是O(n).