第一:Dijkstras最短路径算法的一般运行时间是
其中m是边数,n是顶点数
秒:预期的减号操作数量如下
第三次:使用二进制堆的dijkstra的预期运行时间允许在log(n)时间内执行所有操作
但是,如果我们考虑图表密集,为什么密集图上的运行时间是线性的
有人可以在这里帮助进行O符号和日志计算吗?
答案 0 :(得分:1)
首先,如果m
是n log(n) log(log(n))
的大欧米茄,那么log(n)
就是log(m)
的大欧米茄,这并不难说明。因此,您可以证明m
是n log(m) log(log(m))
的大o。
通过此,您可以证明n
是m / (log(m) log(log(m)))
的大o。
将其替换为第三点中的表达式,我们得到预期的运行时间:
O(m + n log(m/n) log(n))
m m
= O(m + (------------------) log(log(m) log(log(m))) log(------------------)
log(m) log(log(m)) log(m) log(log(m))
从这里,您可以将所有产品日志扩展为日志总和。你会得到很多条款。然后,这只是一个证明每个人都是O(m)
或o(m)
的问题。这很简单,但很乏味。
答案 1 :(得分:0)
我的解决方案现在是以下