Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Difference between BFS and DFS

  • Difficulty Level : Easy
  • Last Updated : 25 Aug, 2021

Breadth First Search

BFS stands for Breadth First Search is a vertex based technique for finding a shortest path in graph. It uses a Queue data structure which follows first in first out. In BFS, one vertex is selected at a time when it is visited and marked then its adjacent are visited and stored in the queue. It is slower than DFS. 
Ex- 
 

        A
       / \
      B   C
     /   / \
    D   E   F

Output is: 
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

A, B, C, D, E, F

 



Depth First Search

DFS stands for Depth First Search is a edge based technique. It uses the Stack data structure, performs two stages, first visited vertices are pushed into stack and second if there is no vertices then visited vertices are popped. 
Ex- 
 

        A
       / \
      B   C
     /   / \
    D   E   F

Output is: 
 

A, B, D, C, E, F

 

BFS vs DFS

 

S.NOBFSDFS
1.BFS stands for Breadth First Search.DFS stands for Depth First Search.
2.BFS(Breadth First Search) uses Queue data structure for finding the shortest path.DFS(Depth First Search) uses Stack data structure.
3.BFS can be used to find single source shortest path in an unweighted graph, because in BFS, we reach a vertex with minimum number of edges from a source vertex.In DFS, we might traverse through more edges to reach a destination vertex from a source.
3.BFS is more suitable for searching vertices which are closer to the given source.DFS is more suitable when there are solutions away from source.
4.BFS considers all neighbors first and therefore not suitable for decision making trees used in games or puzzles.DFS is more suitable for game or puzzle problems. We make a decision, then explore all paths through this decision. And if this decision leads to win situation, we stop.
5.The Time complexity of BFS is O(V + E) when Adjacency List is used and O(V^2) when Adjacency Matrix is used, where V stands for vertices and E stands for edges.The Time complexity of DFS is also O(V + E) when Adjacency List is used and O(V^2) when Adjacency Matrix is used, where V stands for vertices and E stands for edges.
6.Here, siblings are visited before the childrenHere, children are visited before the siblings
   

Please also see BFS vs DFS for Binary Tree for the differences for a Binary Tree Traversal.
 

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!