# Difference Between BFS and DFS

**Breadth First Search**

**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:**

A, B, C, D, E, F

**Depth First Search**

**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**

**BFS vs DFS**

S.NO | BFS | DFS |
---|---|---|

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 verteces 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), where V stands for vertices and E stands for edges. | The Time complexity of DFS is also O(V + E), where V stands for vertices and E stands for edges. |

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

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Difference between C and C#
- Difference between 4NF and 5NF
- Difference between PCA VS t-SNE
- Web 1.0, Web 2.0 and Web 3.0 with their difference
- Difference between Blu-ray and DVD
- Difference between H.323 and SIP
- What is the difference between GUI and CUI?
- Difference between CLI and GUI
- Difference between 4G and 5G
- Difference between LED and LCD
- Difference between Tor and VPN
- Difference between MAN and WAN
- Difference between USB 2.0 and USB 3.0
- Difference between CD-R and CD-RW
- Difference between CRT and LCD

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.