我分析了Kruskal算法的运行时间,我想出了O(ElogE + Elogv + v)
我问我的教授,他说如果图形非常稀疏,有许多孤立的顶点V支配E,如果没有那么有意义那么E支配V并且我无法理解为什么? 我可以给出一个示例,其中图形不稀疏,但V仍然大于E
任何人都可以帮助我清除这种困惑吗?
答案 0 :(得分:3)
非定向图表中的tree具有|V|-1
条边。
由于树是连接的组件,边缘越少越好 - 它基本上意味着对于每个连接的不定向图,| E |在Omega(|V|)
中,所以| V |由| E |主导。
这基本上意味着如果|E| < |V|-1
- 图表未连接。
现在,由于Kruskal算法旨在查找生成树,因此您可以在找到|E| < |V|-1
后中止算法 - 根本没有生成树,无需查找生成树。
从我们得出结论,当|E| < |V|-1
时,讨论Kruskal算法的复杂性是没有意义的,我们可以安全地假设|E| >= |V| -1
,所以{{1} }由|V|
支配。
答案 1 :(得分:0)
密度=边数/可能边数= E /(V(V-1))/ 2
让图形为树E = V-1
所以V =(E + 1)
而Kruskal的复杂性是
O(E log E + E log V + V)= O(E log E + E log(E + 1)+(E + 1))= O(E log E)
因此,E占主导地位。只要E = O(V),E就会占主导地位。