BFS (Breadth-First): uses queue, explores neighbors first, finds shortest path in unweighted graphs, more memory for wide graphs. DFS (Depth-First): uses stack/recursion, explores deeply first, less memory, good for: topological sort, cycle detection, path existence. Choose BFS for shortest path, level-order; DFS for exhaustive search, backtracking.