对于具有v
顶点和e
边且边缘存储在二进制最小堆中的图,最坏情况下的运行时为O((n+e)lg(n))
。但是,这是假设我们使用邻接链表来表示图。使用邻接矩阵需要遍历O(n^2)
,而可以在O(n+e)
中遍历链表表示。
因此,使用矩阵表示图是否会将Dijkstra的运行时间更改为O(n^2lg(n))
?
答案 0 :(得分:1)
O(log n)的成本用于处理边,而不用于遍历图,因此,如果您知道图中的边的实际数目,则Dijkstra在邻接矩阵上的算法具有最小值-heap在 O(n ^ 2 +(n + e)log(n))时间之内。