2012-02-23 58 views
3

首先:Dijkstras最短路径算法的一般运行时间是迪杰斯特拉线性

Dijkstra generalrunning time

其中m是边缘的和数目n个顶点

的数量

:预计decreasekey操作数是以下

expected running time

:与二进制堆Dijkstra算法的预期运行时间,允许在日志中的所有操作(n)的时间是

expected binary heap

但是,为什么在稠密的图的运行时间,如果线性我们考虑一个密度图如果 dense graph

有人可以帮助在这里的O符号和日志计算?

回答

0

我的解决方案现在以下

calcu enter image description here

1

首先,它是不难表明,如果mn log(n) log(log(n))大欧米伽然后log(n)log(m)大欧米伽。因此,您可以显示mn log(m) log(log(m))的大欧米茄。

由此您可以证明nm/(log(m) log(log(m)))的大欧米茄。

替代这回你在第三点有表达,我们得到了预期的运行时间为:

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)的问题。这很直截了当,虽然乏味。