遇到有关算法的在线课程的这条信息: BFS用于查找无向图的连通分量,而DFS用于查找有向图的连通分量。 我可以在这里做相反的事情,如果我做了性能上的弊端吗?
答案 0 :(得分:1)
这不是DFS和BFS之间的主要区别。它们都可以应用于有向图或无向图。通常DFS比BFS消耗更少的内存,因为BFS必须在搜索树的每个级别存储所有子指针。但是DFS可以在堆栈中存储队列(只有一条路径)。
通常DFS比BFS快,空间复杂度低,易于实现。但是在一些问题中(比如寻找最短路径),DFS不像BFS那样有用或高效。
从搜索树的角度来看,BFS和DFS实际上是相同的算法,但具有不同的数据结构。