深度优先和广度优先区别

如题所述

深度优先和广度优先区别就是选择候补节点,作为下一个节点的基准不同。

深度优先搜索是一种在开发爬虫早期使用较多的方法,目的是要达到被搜索结构的叶结点。宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。

深度优先搜索是每次从栈中弹出一个元素,再搜索所有在它下一级的元素,把这些元素压入栈中。并把这个元素记为它下一级元素的前驱,找到所要找的元素时结束程序。广度优先搜索是每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放队列的末尾。并把这个元素记为它下一级元素的前驱,找到所要找的元素时结束程序。

深度优先搜索详细解释

事实上,深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。

每次深度优先搜索的结果必然是图的一个连通分量,深度优先搜索可以从多点发起。如果将每个节点在深度优先搜索过程中的结束时间排序(具体做法是创建一个list,然后在每个节点的相邻节点都已被访问的情况下,将该节点加入list结尾,然后逆转整个链表),则我们可以得到所谓的拓扑排序,即topological sort。

以上内容参考:百度百科—深度优先搜索

温馨提示:答案为网友推荐,仅供参考