求问朴素堆优化dijkstra复杂度
  • 板块学术版
  • 楼主Luke_li
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/13 23:01
  • 上次更新2024/11/14 02:30:21
查看原帖
求问朴素堆优化dijkstra复杂度
539784
Luke_li楼主2024/11/13 23:01

请问使用二叉堆优化的Dijkstra算法的最坏时间复杂度到底是什么?

我在OIwiki上看见Dijkstra的复杂度是 O(mlogn)O(m\log n) ,但是我曾经的某位老师、同机房的一位大佬、还有我自己认为是 O(mlogm)O(m\log m)

我的理由是这样的:在二叉堆优化dijkstra中,时间复杂度的瓶颈是入堆操作。而如果在一段时间里,有 n2\frac{n}{2} 个点对剩余的 n2\frac{n}{2} 个点都进行入队,而这些边权很大以至于堆里一时半会还不会pop,此时堆中就有 O(m)O(m) 数量级的点了。这样一来,总的复杂度就是 O(mlogm)O(m\log m) 了。

所以到底哪种看法是正确的呢?我想知道一个精确的答案,谢谢!

2024/11/13 23:01
加载中...