使用邻接矩阵与邻接链表时​​Dijkstra算法的时间复杂度

时间:2018-12-14 04:42:19

标签: algorithm data-structures graph-algorithm dijkstra

对于具有v顶点和e边且边缘存储在二进制最小堆中的图,最坏情况下的运行时为O((n+e)lg(n))。但是,这是假设我们使用邻接链表来表示图。使用邻接矩阵需要遍历O(n^2),而可以在O(n+e)中遍历链表表示。

因此,使用矩阵表示图是否会将Dijkstra的运行时间更改为O(n^2lg(n))

1 个答案:

答案 0 :(得分:1)

O(log n)的成本用于处理边,而不用于遍历图,因此,如果您知道图中的边的实际数目,则Dijkstra在邻接矩阵上的算法具有最小值-heap在 O(n ^ 2 +(n + e)log(n))时间之内。