我正在阅读Chap中的Dijkstras算法。 24并与稀疏图的含义混淆。他们说"如果图表足够稀疏 - 特别是E= o(V^2/lg V)
- 我们可以
通过使用二进制minheap实现最小优先级队列来改进算法。"
我的问题
他们从哪里派生出稀疏图表E= o(V^2/lg V)
?
在密集图的情况下,我们不能使用最小优先级队列。它会对Dijkstra的时间复杂性产生什么影响?
参考-CLRS Page-662 3rd Ed。
请阅读:
答案 0 :(得分:2)
将E
的表达式替换为总运行时间O((V + E)lg V)
,您会看到如果E=o(V^2/lg V)
总计将为o(V^2)
,是对不使用minheap的O(V^2)
运行时间的改进。
再一次,替换。我们假设一个完整的图表E = V^2
。然后,运行时间变为O((V + V^2)lg V) = O(V^2 lg V)
,这比O(V^2)
更差。