【发布时间】:2020-08-02 12:39:39
【问题描述】:
我一直在尝试了解 Dijkstra 算法的内部原理,以找到加权图的最短路径。
访问一个顶点后,为什么我们要把相邻的顶点存储到一个PriorityQueue而不是普通的Queue?
我问上述问题的原因是: 我了解 PriorityQueue 我们可以从队列中获取最大/最小数字。但是在 Dijkstra 算法的情况下,我们无论如何都会访问所有顶点,而不管距离/优先级如何。在这种情况下,为什么我们需要使用复杂度为 O(log N) 的 PriorityQueue,而普通队列会做 O(1)?
我错过了什么吗?
【问题讨论】:
标签: algorithm data-structures priority-queue shortest-path dijkstra