多图和邻接列表

时间:2017-03-05 17:19:19

标签: performance graph big-o

我有一个可以表示为多图的问题。为了在内部表示这个图,我正在考虑一个矩阵。我喜欢矩阵的想法,因为我想计算一个顶点的边数。这将是O(n)时间,因为我所要做的就是遍历正确的列,因此时间复杂度将与图中的顶点数量成线性关系,对吗?但是,我也在考虑空间复杂性。如果这个图表增长,可能会浪费很多空间。这导致我使用邻接列表。这可能会降低我的空间复杂度,但听起来像我的时间复杂度增加了。如果我想确定特定顶点的边数,我将如何表示时间复杂度?我知道操作首先要找到顶点,所以这个操作将是O(n),但是我还必须扫描边缘列表,也可以是O(n)。这是否意味着此操作的时间复杂度为O(n ^ 2)?

编辑:

我想如果我要使用HASH表,第一个操作是O(1)那么这是否意味着我找到一个顶点边数的操作是O(n)?

1 个答案:

答案 0 :(得分:0)

将是O(| e |),| e |可以是O(| v | ** 2),但是你想使用邻接表,因为矩阵稀疏所以| e |<< | v |所以最好说O(| e |)。