【问题标题】:What is the worst case time complexity of applying Kruskal algorithm in a loop?在循环中应用 Kruskal 算法的最坏情况时间复杂度是多少?
【发布时间】:2021-10-21 16:35:06
【问题描述】:

这是我的伪代码的 sn-p,用于在给定图形 G 的情况下查找每个强连接组件 (SCC) 的 MST:

Number of SCC, K <- apply Kosaraju's algorithm on Graph G O(V + E)

Loop through K components:
 each K components <- apply Kruskal's algorithm

据我所知,克鲁斯卡尔算法的运行时间为 O(E log V)。

但是,我不确定循环的最坏情况时间复杂度。我的想法是当 K = 1 时会发生最坏的情况。因此,大 O 时间复杂度只是 O(E log V)。

我不知道我的想法是否正确,或者是否正确,有什么理由。

【问题讨论】:

标签: algorithm time-complexity


【解决方案1】:

是的,直观地说,您节省了一次比较边缘的成本 具有另一个边缘的组件。形式上,f(V, E) ↦ E log V 是一个凸的 函数,所以 f(V1, E1) + f(V2, E2) ≤ f(V1 + V2, E1 + E2),这意味着处理多个 单独处理组件永远不会超过一起处理它们。的 当然,正如您所观察到的,可能只有一个组件,在这种情况下 没有积蓄。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多