Dijkstra's algorithm is a graph search algorithm that solves the single-source shortest path
problem for a graph with non-negative edge path costs, producing a shortest path tree. This
implementation based on a min-priority queue implemented by a Fibonacci heap runs in \(O(|E|+|V|\log|V|)\).
It is asymptotically the fastest known single-source shortest-path algorithm for arbitrary
directed graphs with unbounded non-negative weights.