使用Python,如何以节省内存的方式将加权边列表转换为对称邻接矩阵?
例如,考虑以下包含4个节点和3个边的加权边列表:
A B 1
A C 2
C D 3
则输出邻接矩阵如下:
0 1 2 0
1 0 0 0
2 0 0 3
0 0 3 0
我希望以一种节省内存的方式来做到这一点-- 100000 x 100000邻接矩阵(10**10值)。请注意,矩阵是对称的,并且所有对角线的值都是0。
我遇到了这个问题,在这个问题中,需要根据邻接表表示来计算图中每个节点的入度数。
for each u
for each Adj[i] where i!=u
if (i,u) ∈ E
in-degree[u]+=1
现在,根据我的说法,它的时间复杂度应该是O(|V||E|+|V|^2),但我提到的解决方案将其描述为等于O(|V||E|)。
请帮帮忙,告诉我哪一个是对的。