← Back to Home

Algorithm Design: Shortest Path in Weighted Graph

This algorithm design assignment implements Dijkstra's algorithm for finding shortest paths in a weighted graph. The graph represents a city's road network with nodes as intersections and edges as roads with travel times.

The algorithm uses a priority queue (min-heap) to efficiently select the unvisited node with smallest distance. Time complexity is O((V+E) log V) with binary heap implementation. Space complexity is O(V) for distance and visited arrays.

Alternative approaches include Bellman-Ford (handles negative weights, O(VE)) and A* search (heuristic optimization). The assignment requires analyzing trade-offs and proving correctness using loop invariants. Performance testing compares runtime on sparse vs dense graphs.

Algorithm Deliverables

Order Algorithm Design →