BFS explores a graph level by level using a queue and finds the shortest path in unweighted graphs. DFS explores as deep as possible using recursion/stack; it’s useful for topological sort, cycle detection and often uses less memory on wide graphs.