Search results
Results from the WOW.Com Content Network
Breadth-first search (BFS) is an algorithm for searching a tree data structure for a node that satisfies a given property. It starts at the tree root and explores all nodes at the present depth prior to moving on to the nodes at the next depth level.
Depth-first search (DFS) is an algorithm for traversing or searching tree or graph data structures. The algorithm starts at the root node (selecting some arbitrary node as the root node in the case of a graph) and explores as far as possible along each branch before backtracking.
The breadth-first-search algorithm is a way to explore the vertices of a graph layer by layer. It is a basic algorithm in graph theory which can be used as a part of other graph algorithms. For instance, BFS is used by Dinic's algorithm to find maximum flow in a graph.
By contrast, a breadth-first search will never reach the grandchildren, as it seeks to exhaust the children first. A more sophisticated analysis of running time can be given via infinite ordinal numbers ; for example, the breadth-first search of the depth 2 tree above will take ω ·2 steps: ω for the first level, and then another ω for the ...
A depth-first search (DFS) is an algorithm for traversing a finite graph. DFS visits the child vertices before visiting the sibling vertices; that is, it traverses the depth of any particular path before exploring its breadth. A stack (often the program's call stack via recursion) is generally used when implementing the algorithm.
IDDFS achieves breadth-first search's completeness (when the branching factor is finite) using depth-first search's space-efficiency. If a solution exists, it will find a solution path with the fewest arcs. [2] Iterative deepening visits states multiple times, and it may seem wasteful.
But then DFS is the same as BFS just with a stack instead of a queue. So you would have to add the part about shortest paths in the DFS article, too. All three algorithms differ (mainly) only by just the datastructure used to save the nodes in, but their output is absolutely different. --Regnaron 21:14, 26 September 2006 (UTC)
An alternative algorithm for topological sorting is based on depth-first search.The algorithm loops through each node of the graph, in an arbitrary order, initiating a depth-first search that terminates when it hits any node that has already been visited since the beginning of the topological sort or the node has no outgoing edges (i.e., a leaf node):