【问题标题】:Multigraph and adjacency list多图和邻接表
【发布时间】:2023-03-15 09:08:01
【问题描述】:

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

编辑:

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

【问题讨论】:

    标签: performance graph big-o


    【解决方案1】:

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

    【讨论】:

    • 对不起,我的意思是|e|
    • 我有点困惑。因此,如果我有一个哈希表,并且每个哈希都有一个邻居数组,那么遍历该数组最坏的情况是 O(n) 吗?
    • 是的,我很困惑,因为您没有说 n 是边数,我假设您说 n 是节点数,但这没有任何意义。对不起。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2012-11-12
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多