【发布时间】:2023-03-15 09:08:01
【问题描述】:
我有一个可以表示为多重图的问题。为了在内部表示这个图,我正在考虑一个矩阵。我喜欢矩阵的想法,因为我想计算一个顶点的边数。这将是 O(n) 时间,因为我所要做的就是遍历正确的列,因此时间复杂度与图中的顶点数量成线性关系,对吧?但是,我也在考虑空间复杂性。如果这个图表要增长,可能会浪费很多空间。这导致我使用邻接列表。这可能会降低我的空间复杂度,但听起来我的时间复杂度只是增加了。如果我想确定特定顶点的边数,我将如何表示时间复杂度?我知道该操作首先是查找顶点,因此该操作将是 O(n),但随后我还必须扫描也可能是 O(n) 的边列表。那么这是否意味着我这个操作的时间复杂度是 O(n^2)?
编辑:
我猜如果我要使用 HASH 表,第一个操作将是 O(1),这是否意味着我查找顶点边数的操作是 O(n)?
【问题讨论】:
标签: performance graph big-o