返回介绍

7.21.Dijkstra算法分析

发布于 2024-06-08 22:44:10 字数 2611 浏览 0 评论 0 收藏 0

7.21.Dijkstra算法分析

最后,让我们看看 Dijkstra 算法的运行时间。我们首先注意到,构建优先级队列需要 O(V)O(V)O(V) 时间,因为我们最初将图中的每个顶点添加到优先级队列。 一旦构造了队列,则对于每个顶点执行一次 while 循环,因为顶点都在开始处添加,并且在那之后才被移除。 在该循环中每次调用 delMin,需要 O(logV)O(logV)O(logV)时间。 将该部分循环和对 delMin 的调用取为 O(Vlog(V))O(Vlog(V))O(Vlog(V))。 for 循环对于图中的每个边执行一次,并且在 for 循环中,对 decreaseKey 的调用需要时间 O(Elog(V))O(Elog(V))O(Elog(V)) 。 因此,组合运行时间为 O((V+E)log(V))O((V + E)log(V))O((V+E)log(V))。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文