我正在比较两种算法,即Prim算法和Kruskal算法。

我了解时间复杂度的基本概念以及两者何时最有效的关系(稀疏/密集图)

我在Internet上找到了它,但是我正在努力将其转换为英语。

dense graph:  Prim = O(N2)
              Kruskal = O(N2*log(N))

sparse graph: Prim = O(N2)
              Kruskal = O(N log(N))

这是一个很长的路要走,但是任何人都可以解释这里发生了什么吗?

最佳答案

Prim是O(N ^ 2),其中N是顶点数。

Kruskal是O(E log E),其中E是边数。 “E log E”来自对边缘进行排序的良好算法。然后,您可以在线性E时间中对其进行处理。

在密集图中,E〜N ^ 2。因此Kruskal为O(N ^ 2 log N ^ 2),也就是O(N ^ 2 log N)。

关于algorithm - 卡在O符号上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1907929/

10-17 02:14