【问题标题】:Breadth First Search(BFS) and Depth First Search(DFS)广度优先搜索(BFS)和深度优先搜索(DFS)
【发布时间】:2016-02-16 19:38:54
【问题描述】:

在关于算法的在线课程中看到以下信息: BFS 用于查找无向图的连通分量,而 DFS 用于查找有向图的连通分量。 我可以在这里做相反的事情吗?如果我这样做会对性能产生什么影响?

【问题讨论】:

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


    【解决方案1】:

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

    通常DFS比BFS快,空间复杂度低,容易实现。但在某些问题上(比如寻找最短路径),DFS 不如 BFS 有用或高效。

    从搜索树的角度来看,BFS和DFS其实是同一种算法,只是数据结构不同。

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2012-05-23
      相关资源
      最近更新 更多