To find the shortest path from a single starting point (source) to all other points (nodes) in a graph with non-negative edge weights.
Click to reveal answer
intermediate
In Dijkstra's Algorithm, what data structure is commonly used to efficiently select the next node with the smallest tentative distance?
A priority queue (often implemented as a min-heap) is used to quickly pick the node with the smallest current distance.
Click to reveal answer
intermediate
Why can't Dijkstra's Algorithm handle graphs with negative edge weights?
Because it assumes that once a node's shortest distance is found, it won't change. Negative edges can create shorter paths after visiting nodes, breaking this assumption.
Click to reveal answer
advanced
What is the time complexity of Dijkstra's Algorithm using a priority queue (min-heap) and adjacency list?
O((V + E) log V), where V is the number of vertices and E is the number of edges.
Click to reveal answer
beginner
Explain the role of the 'distance' array in Dijkstra's Algorithm.
It stores the shortest known distance from the source node to every other node. It updates as the algorithm finds shorter paths.
Click to reveal answer
What type of graph edge weights can Dijkstra's Algorithm handle?
Which data structure helps Dijkstra's Algorithm pick the next closest node efficiently?
AStack
BPriority Queue
CLinked List
DQueue
✗ Incorrect
A priority queue (min-heap) allows quick access to the node with the smallest tentative distance.
What happens if you run Dijkstra's Algorithm on a graph with negative edge weights?
AIt may give incorrect results
BIt always finds the correct shortest paths
CIt runs faster
DIt ignores negative edges
✗ Incorrect
Negative edges can cause the algorithm to miss shorter paths found later, leading to wrong answers.
What does the 'distance' array represent in Dijkstra's Algorithm?
AShortest known distance from source to each node
BTotal weight of all edges
CNumber of edges from source
DVisited nodes count
✗ Incorrect
The distance array keeps track of the shortest distance found so far from the source to each node.
What is the initial distance value for the source node in Dijkstra's Algorithm?
AOne
BInfinity
CNegative infinity
DZero
✗ Incorrect
The source node distance is zero because the distance from the source to itself is zero.
Describe step-by-step how Dijkstra's Algorithm finds the shortest paths from a source node.
Think about how the algorithm updates distances and picks nodes.
You got /5 concepts.
Explain why Dijkstra's Algorithm cannot be used with graphs containing negative edge weights and what alternative algorithm can be used instead.
Focus on the assumption about shortest paths and mention a known alternative.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of Dijkstra's Algorithm in graph theory?
easy
A. To sort vertices in topological order
B. To find the maximum flow in a network
C. To detect cycles in a graph
D. To find the shortest path from a single source to all other vertices
Solution
Step 1: Understand the algorithm's goal
Dijkstra's Algorithm is designed to find the shortest paths from one starting point (source) to all other points in a graph with non-negative edge weights.
Step 2: Compare with other graph algorithms
Other algorithms like max flow or cycle detection serve different purposes, so they do not match Dijkstra's goal.
Final Answer:
To find the shortest path from a single source to all other vertices -> Option D
Quick Check:
Shortest path from one source = To find the shortest path from a single source to all other vertices [OK]
Hint: Dijkstra finds shortest paths from one start point [OK]
Common Mistakes:
Confusing Dijkstra with max flow algorithms
Thinking it detects cycles
Assuming it sorts vertices
2. Which of the following is the correct way to initialize the distance array in Dijkstra's Algorithm in JavaScript?
easy
A. const dist = new Array(n).fill(Infinity); dist[source] = 0;
B. const dist = Array(n).fill(0); dist[source] = Infinity;
C. const dist = new Array(n).fill(null); dist[source] = 0;
D. const dist = new Array(n).fill(-1); dist[source] = 0;
Solution
Step 1: Understand distance initialization
Distances to all nodes except the source should start as Infinity to represent unknown paths, and the source distance is 0.
Step 2: Check each option
const dist = new Array(n).fill(Infinity); dist[source] = 0; correctly sets all distances to Infinity and source to 0. Others either set wrong initial values or invert source distance.
Final Answer:
const dist = new Array(n).fill(Infinity); dist[source] = 0; -> Option A
Quick Check:
Distance array starts with Infinity except source = const dist = new Array(n).fill(Infinity); dist[source] = 0; [OK]
Hint: Start distances as Infinity, source as 0 [OK]
Common Mistakes:
Setting source distance to Infinity
Using 0 for all distances initially
Using null or -1 incorrectly
3. Consider the following JavaScript code snippet implementing part of Dijkstra's Algorithm. What will be the output of the distance array after running this code?
const graph = {
0: [{node:1, weight:4}, {node:2, weight:1}],
1: [{node:3, weight:1}],
2: [{node:1, weight:2}, {node:3, weight:5}],
3: []
};
const dist = [0, Infinity, Infinity, Infinity];
const visited = new Set();
function dijkstra() {
while (visited.size < 4) {
let u = -1;
let minDist = Infinity;
for (let i = 0; i < 4; i++) {
if (!visited.has(i) && dist[i] < minDist) {
minDist = dist[i];
u = i;
}
}
visited.add(u);
for (const neighbor of graph[u]) {
if (dist[u] + neighbor.weight < dist[neighbor.node]) {
dist[neighbor.node] = dist[u] + neighbor.weight;
}
}
}
}
dijkstra();
console.log(dist);
medium
A. [0, 4, 1, 6]
B. [0, 3, 1, 4]
C. [0, 2, 1, 3]
D. [0, 5, 1, 7]
Solution
Step 1: Trace initial distances and first iteration