广度优先搜索(BFS)和深度优先搜索(DFS)

时间:2015-11-15 17:54:56

标签: algorithm search breadth-first-search depth-first-search

遇到有关算法的在线课程的这条信息: BFS用于查找无向图的连通分量,而DFS用于查找有向图的连通分量。 我可以在这里做相反的事情,如果我做了性能上的弊端吗?

1 个答案:

答案 0 :(得分:1)

这不是DFS和BFS之间的主要区别。它们都可以应用于有向图或无向图。通常DFS比BFS消耗更少的内存,因为BFS必须在搜索树的每个级别存储所有子指针。但是DFS可以在堆栈中存储队列(只有一条路径)。

通常DFS比BFS快,空间复杂度低,易于实现。但是在一些问题中(比如寻找最短路径),DFS不像BFS那样有用或高效。

从搜索树的角度来看,BFS和DFS实际上是相同的算法,但具有不同的数据结构。