Algorithm Dijkstra算法的空间复杂度是多少?
使用数组的Dijkstra算法的时间复杂度为O(V^2),如果实现了优先级队列,我们可以进一步将复杂度提高到O(E log V)。但是它的空间复杂性呢?这两种情况都是O(V)吗?如果您使用MinHeap(也称为优先级队列)实现Disjkstra的最短路径算法,该算法反过来使用数组存储堆,并且如果您使用数组存储图中每个节点的最短距离值,那么您的空间复杂度将是Algorithm Dijkstra算法的空间复杂度是多少?,algorithm,graph-algorithm,dijkstra,Algorithm,Graph Algorithm,Dijkstra,使用数组的Dijkstra算法的时间复杂度为O(V^2),如果实现了优先级队列,我们可以进一步将复杂度提高到O(E log V)。但是它的空间复杂性呢?这两种情况都是O(V)吗?如果您使用MinHeap(也称为优先级队列)实现Disjkstra的最短路径算法,该算法反过来使用数组存储堆,并且如果您使用数组存储图中每个节点的最短距离值,那么您的空间复杂度将是O(V)+O(V)=O(2V)=~O(V)Dijkstra算法的时间和空间: 时间:O(| V |+| E |)log V) 空格:O(|
O(V)+O(V)=O(2V)=~O(V)
Dijkstra算法的时间和空间:
- 时间:O(| V |+| E |)log V)
- 空格:O(| V |+| E |)
- Dijkstra实现(Python3):