邻接矩阵和邻接表的时间/空间复杂度

Raj*_*ena 5 algorithm graph

我读“算法设计”通过伊娃·塔尔多斯并在第3章中提到,邻接矩阵具有的复杂性O(n^2),同时邻接表有O(m+n)其中m为边的总数,n为节点的总数。它说在邻接列表的情况下,我们只需要每个节点的大小为 m 的列表。

在邻接列表的情况下,我们不会得到类似于矩阵的东西,因为我们有列表,它们也是一维数组。所以基本上它是O(m*n)根据我的。请指导我。

yur*_*rib 9

邻接矩阵为每对节点保留一个值(1/0),无论边是否存在,因此它需要n*n空间。

邻接只包含现有的边,所以它的长度最多是边的数量(或者节点的数量,如果边比节点少的话)。

它说在邻接列表的情况下,我们只需要每个节点的大小为 m 的列表。

我想你误解了那部分。邻接列表m包含每个节点的大小列表,因为它m是整体边的数量。

在全连接图中,每对节点之间都有一条边,因此邻接表和矩阵都需要n*n空间,但对于其他所有情况 - 邻接表会更小。