📜  门|门 IT 2005 |问题 15

📅  最后修改于: 2021-09-26 03:43:16             🧑  作者: Mango

在下表中,左列包含标准图算法的名称,右列包含算法的时间复杂度。将每个算法与其时间复杂度相匹配。

 1. Bellman-Ford algorithm
2. Kruskal’s algorithm
3. Floyd-Warshall algorithm
4. Topological sorting
 A : O ( m log n)
B : O (n3)
C : O (nm)
D : O (n + m)

(A) 1→C、2→A、3→B、4→D
(B) 1→B、2→D、3→C、4→A
(C) 1→C、2→D、3→A、4→B
(D) 1→B、2→A、3→C、4→D答案:(一)
解释:

  • Bellman-Ford 算法:时间复杂度:O(VE)
  • Kruskal 算法时间复杂度: O(ElogE) 或 O(ElogV)。边的排序需要 O(ELogE) 时间。排序后,我们遍历所有边并应用 find-union 算法。查找和联合操作最多需要 O(LogV) 时间。所以整体复杂度是 O(ELogE + ELogV) 时间。 E 的值最多可以是 V^2,因此 O(LogV) 与 O(LogE) 相同。因此,总体时间复杂度为 O(ElogE) 或 O(ElogV)
  • Floyd-Warshall 算法时间复杂度:O(V^3)
  • 拓扑排序时间复杂度:上述算法只是带有额外堆栈的 DFS。所以时间复杂度和DFS一样,都是O(V+E)。

这个问题的测验