【问题标题】:Worst case running time in a graph with n vertices and m edges具有 n 个顶点和 m 个边的图中的最坏情况运行时间
【发布时间】:2014-12-11 07:39:14
【问题描述】:

设 G 是一个有 n 个顶点和 m 个边的连通图。当此图是算法的输入时,以下哪项最符合“线性时间”的概念?

a) O(n)

b) O(m)

c) O(n^2)

d) O((n+m)^2)

我不认为这个问题会像它那样让我大吃一惊,但我现在必须弄清楚。根据线性时间的定义,我假设它是 a 或 b。如果我必须选择一个,我会选择 B,因为可能有更多的边然后有顶点。但是,我知道情况可能并非如此,顶点可能比边多,所以 A 听起来也不错,而且 D 也是唯一一个实际上同时考虑了 n 和 m 的人。

【问题讨论】:

    标签: big-o computer-science graph-theory


    【解决方案1】:

    是的,你是对的,答案是(b)。

    请注意,G 是一个连通图,因此我们有以下基本事实:

    m ≥ n-1
    

    由于算法的输入是图G,所以算法的输入大小是n + m,我们有:

      n + m
    ≤ m - 1 + m
    < 2m
    

    因此相对于输入的线性时间是O(n + m) = O(m)

    【讨论】:

    • 非常感谢!我知道我走在了正确的轨道上,但是您清除了我感到困惑的地方,现在我明白为什么会这样了。
    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多