Table of contents
1.
Introduction 🥳
2.
Dijkstra’s Algorithm
3.
Floyd–Warshall’s Algorithm
4.
Comparison
4.1.
Asymptotic Analysis
4.2.
Limitations
5.
Frequently Asked Questions ⁉️
5.1.
Is Floyd–Warshall’s Algorithm better than Dijkstra’s Algorithm?
5.2.
Why is Floyd–Warshall’s Algorithm used?
5.3.
Does Dijkstra’s Algorithm use DFS or a BFS?
5.4.
What benefits does binary search offer?
5.5.
What is Dijkstra’s Algorithm famous for?
6.
Conclusion
Last Updated: Mar 27, 2024
Medium

Dijkstra’s Algorithm vs Floyd–Warshall’s Algorithm

Author Shiva
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction 🥳

In this article, the primary distinctions between Floyd–Warshall’s Algorithm and Dijkstra’s Algorithm for the shortest path will be covered. For a deeper understanding, we will compare them further based on several aspects.

introductory image

Both techniques work with the graph Data Structure. A graph is made up of a collection of nodes, also known as vertices, denoted by the letter V, and a set of connections, also known as edges, denoted by the letter E. In addition, we give each edge a non-negative integer weight that corresponds to the distance metric between any two nodes. The distance separating two nodes is equal to the weights of the edges that make up the path. Finding the path with the shortest distance between node pairs is therefore crucial.

Dijkstra’s Algorithm

Dijkstra’s Algorithm is used to resolve the Single Source Shortest Path issue. In other words, we want to identify the shortest route between a particular source node and a specific destination node. This algorithm is used effectively in the link-state routing protocol, where each node applies it to build an internal representation of the network.

Step 1: Create a weighted graph first, where each branch is given a certain numerical weight. Similarly, a weighted graph is a specific type of labeled graph where the labels are numerical values (which are positive).

dijkstra's algorithm 1 image

Step 2: Choose a starting vertex, and give all other components route values of infinite.

dijkstra's algorithm 2 image

Step 3: Update each vertex's path length stopping by.

dijkstra's algorithm 3 image

Step 4: Do not update a vertex if its path length is less than the new path length.

dijkstra's algorithm 4 image

Step 5: Don't alter the path lengths of vertices that have already been visited.

dijkstra's algorithm 5 image

Dijkstra’s Algorithm adheres to the concept of greed. As a result, it terminates with a globally optimal solution by making locally optimal decisions at each stage. The optimal substructure and greedy choice property are the distinguishing features of a problem that a greedy algorithm can solve. These algorithms run in a top-down manner.

By "optimal substructure," we imply that a problem's optimal solution is made up of the best possible answers to each of its subproblems. For instance, the Unweighted Longest Simple Path issue lacks optimum substructure while the SSSP problem does.

Refer to the blog Dijkstra's Algorithmfor a detailed analysis and code implementation of it.

Floyd–Warshall’s Algorithm

The Floyd–Warshall’s Algorithm is used to find the All-Pairs Shortest Paths solution. We focus on determining the graph's shortest paths—a more time-consuming computing task—between each pair of nodes. Both the storage space and processing time needed for graph data are examples of how this computational cost is visible. However, because of how easily it can be implemented, the Floyd–Warshall’s Algorithm is still valuable.

floyd-warshall's algorithm image 1

Floyd–Warshall’s Algorithm, in contrast, adheres to the dynamic programming (DP) paradigm. These algorithms either operate top-down with applied memoization or build solutions from the bottom up. The optimal substructure and overlapping subproblems are characteristics of DP-solvable problems.

floyd-warshall's algorithm image 2

If the same subproblems are solved at different stages of the method, a problem is said to have overlapping subproblems. Because of this, no new subproblems are created within its narrow subproblem space.

Refer to the blog Floyd Warshall Algorithm” for a detailed analysis and code implementation of it.

Comparison

Asymptotic Analysis

Here’s a table for the time and space complexity of Dijkstra’s Algorithm and Floyd–Warshall’s Algorithm.

Algorithm Time Complexity Space Complexity
Dijkstra’s Algorithm + Array O(V*V) O(V)
Dijkstra’s Algorithm + Min-Heap O(ElogV) O(V)
Dijkstra’s Algorithm + Fibonacci heap O(E+VlogV) O(V)
Floyd–Warshall’s Algorithm  O(V*V*V) O(V*V)

Limitations

On graphs containing edges that have negative weights, Dijkstra’s Algorithm might not get the right answer.

Floyd–Warshall’s Algorithm, however, ensures accuracy even in the presence of negative weight edges. In the graph, it can also find negative-weight cycles.

Check out this problem - Count Ways To Reach The Nth Stair 

Frequently Asked Questions ⁉️

Is Floyd–Warshall’s Algorithm better than Dijkstra’s Algorithm?

Floyd–Warshall’s Algorithm is suited for data structures such as Graph of Graphs because it may be implemented in a distributed environment (Used in Maps). Finally, Floyd Warshall works for negative edges but not negative cycles, whereas Dijkstra’s Algorithm does not.

Why is Floyd–Warshall’s Algorithm used?

The Floyd–Warshall’s Algorithm is used to find all pairs of shortest paths in a weighted graph.

Does Dijkstra’s Algorithm use DFS or a BFS?

Dijkstra’s Algorithm uses just BFS with a priority queue.

What benefits does binary search offer?

Because the amount of data to be searched is reduced by half with each step in a binary search, one of its key benefits is that it is faster than a serial search.

What is Dijkstra’s Algorithm famous for?

Dijkstra’s Algorithm uses edge weights to identify the path that minimizes the overall distance (weight) between the source node and all other nodes.

Conclusion

In this article, we have discussed Dijkstra’s Algorithm vs Floyd–Warshall’s Algorithm, and the key differences between them.

If you think this blog has helped you enhance your knowledge about the above question, and if you want to learn more, check out our articles. 

And many more on our website.

Visit our website to read more such blogs. Make sure that you enroll in the courses we provide, take mock tests, solve problems available, and interview puzzles. Also, you can pay attention to interview stuff- interview experiences and an interview bundle for placement preparations. Do upvote our blog to help fellow ninjas grow.

Live masterclass