稀疏图中的边数?

时间:2013-12-23 15:12:25

标签: algorithm dijkstra

我正在阅读Chap中的Dijkstras算法。 24并与稀疏图的含义混淆。他们说"如果图表足够稀疏 - 特别是E= o(V^2/lg V) - 我们可以 通过使用二进制minheap实现最小优先级队列来改进算法。"

我的问题

  1. 他们从哪里派生出稀疏图表E= o(V^2/lg V)

  2. 在密集图的情况下,我们不能使用最小优先级队列。它会对Dijkstra的时间复杂性产生什么影响?

  3. 参考-CLRS Page-662 3rd Ed。

    请阅读:

1 个答案:

答案 0 :(得分:2)

  1. E的表达式替换为总运行时间O((V + E)lg V),您会看到如果E=o(V^2/lg V)总计将为o(V^2),是对不使用minheap的O(V^2)运行时间的改进。

  2. 再一次,替换。我们假设一个完整的图表E = V^2。然后,运行时间变为O((V + V^2)lg V) = O(V^2 lg V),这比O(V^2)更差。