为什么DFS的复杂度在邻接矩阵中是O(V ^ 2)而在邻接列表表示中是O(V + E)?

时间:2014-06-07 20:42:46

标签: graph

为什么DFS算法在邻接矩阵表示中具有O(V 2 )复杂度,在邻接列表表示中具有O(V + E)。

1 个答案:

答案 0 :(得分:6)

对于矩阵:

每个顶点都有一行和一列。如果从顶点i到顶点j有一条边,则位置i,j包含1。

整个矩阵的大小为| V | ^ 2

为什么复杂性为| V | ^ 2?

因为矩阵中的每个位置都被访问过一次。

对于邻接链表:

链接列表的集合,每个顶点都有一个列表,以便顶点v的列表是与顶点v相邻的所有顶点的列表。

为什么复杂性是| E | + | V |? 因为邻接链表中的每个位置都被访问过一次并且存在| V |顶点和| E |边缘。