Dijkstra's (SSSP)
Dijkstra's (SSSP)
End
Source Code:
#include <stdio.h>
#include <limits.h>
#define V 8
#define INF 99999
int main() {
int graph[V][V] = {
{0, 40, 60, 45, 0, 0, 0, 0},
{40, 0, 0, 0, 100, 0, 0, 0},
{60, 0, 0, 40, 0, 0, 80, 70},
{45, 30, 40, 0, 60, 0, 50, 0},
{0, 100, 0, 60, 0, 50, 30, 0},
{0, 0, 0, 0, 50, 0, 30, 70},
{0, 0, 80, 50, 30, 30, 0, 40},
{0, 0, 70, 0, 0, 70, 40, 0},
};
int dist[V];
dijkstra(graph, 0, dist);
int totalDistance = 0;
printf("Total minimum distance to deliver all packages and return: %d\n", totalDistance);
return 0;
}
Input/Output:
Analysis:
Time Complexity:
• Best Case: O(V²)
• Worst Case: O(V²)
Space Complexity:
• Best Case: O(V²)
• Worst Case: O(V²)
(For adjacency matrix)
With Adjacency List:
• Best Case: O(V + E)
• Worst Case: O(V + E)