
Problem
Solution
Submissions
Dijkstra's Algorithm
Certification: Advanced Level
Accuracy: 0%
Submissions: 0
Points: 15
Write a C++ program to find the shortest path from a source vertex to all other vertices in a weighted graph using Dijkstra's algorithm. The program should print the shortest distance from the source to every other vertex.
Example 1
- Input:
- Number of vertices: 5
- Number of edges: 7
- Edge 0: from 0 to 1, weight 9
- Edge 1: from 0 to 2, weight 6
- Edge 2: from 0 to 3, weight 5
- Edge 3: from 0 to 4, weight 3
- Edge 4: from 2 to 1, weight 2
- Edge 5: from 2 to 3, weight 4
- Edge 6: from 3 to 4, weight 2
- Source vertex: 0
- Output:
- Shortest distance from vertex 0 to vertex 0: 0
- Shortest distance from vertex 0 to vertex 1: 8
- Shortest distance from vertex 0 to vertex 2: 6
- Shortest distance from vertex 0 to vertex 3: 5
- Shortest distance from vertex 0 to vertex 4: 3
- Explanation:
- Step 1: Initialize distances (0 for source, infinity for others)
- Step 2: Select vertex with minimum distance (initially source)
- Step 3: Update distances to adjacent vertices if shorter path found
- Step 4: Path to vertex 1: 0→2→1 with distance 8 (6+2)
- Step 5: Path to vertex 4: Direct from 0 with distance 3
- Step 6: Repeat until all vertices processed
Example 2
- Input:
- Number of vertices: 4
- Number of edges: 5
- Edge 0: from 0 to 1, weight 1
- Edge 1: from 0 to 2, weight 4
- Edge 2: from 1 to 2, weight 2
- Edge 3: from 1 to 3, weight 5
- Edge 4: from 2 to 3, weight 1
- Source vertex: 0
- Output:
- Shortest distance from vertex 0 to vertex 0: 0
- Shortest distance from vertex 0 to vertex 1: 1
- Shortest distance from vertex 0 to vertex 2: 3
- Shortest distance from vertex 0 to vertex 3: 4
- Explanation:
- Step 1: Initialize distances (0 for source, infinity for others)
- Step 2: Path to vertex 1: Direct from 0 with distance 1
- Step 3: Path to vertex 2: 0→1→2 with distance 3 (1+2)
- Step 4: Path to vertex 3: 0→1→2→3 with distance 4 (1+2+1)
Constraints
- 1 ≤ V ≤ 10^3 (number of vertices)
- 0 ≤ E ≤ 10^5 (number of edges)
- 1 ≤ weight ≤ 10^4
- Time Complexity: O(E log V)
- Space Complexity: O(V + E)
Editorial
My Submissions
All Solutions
Lang | Status | Date | Code |
---|---|---|---|
You do not have any submissions for this problem. |
User | Lang | Status | Date | Code |
---|---|---|---|---|
No submissions found. |
Solution Hints
- Use an adjacency list to represent the graph.
- Use a priority queue (min-heap) to efficiently extract the vertex with the minimum distance.
- Maintain a distance array to keep track of the shortest distances from the source.
- Initialize the distance of the source vertex as 0 and all other vertices as infinity.
- Process vertices in order of increasing distance from the source.