Solution
1. Time Complexities Breakdown
-
B. Breadth-First Search (BFS): Time Complexity: O(V + E)
Highly efficient; traverses vertices and edges exactly once in unweighted graphs.
-
D. Dijkstra's Algorithm: Time Complexity: O(E + V log V) (using a Fibonacci heap)
More complex than BFS, but highly efficient for finding shortest paths in weighted graphs without negative weights.
-
A. Kruskal's Algorithm: Time Complexity: O(E log V)
Slightly less efficient than optimal Dijkstra due to the need to sort all edges to find the Minimum Spanning Tree.
-
C. Bellman-Ford Algorithm: Time Complexity: O(V.E)
Less efficient than Dijkstra's and Kruskal's, but required when dealing with graphs that contain negative edge weights.
-
E. Edmonds-Karp Algorithm: Time Complexity: O(VE²)
The least efficient of the group; it is a specific implementation of the Ford-Fulkerson method for computing maximum network flow.
2. Efficiency Ranking
When comparing the asymptotic growth rates (where lower complexity = more efficient):
O(V + E) < O(E + V log V) < O(E log V) < O(V.E) < O(VE²)
This gives us the order: B, D, A, C, E
Conclusion
The correct sequence from most efficient to least efficient is Option 3: B, D, A, C, E.