DFS以及BFS的用途以及对比
Posted jihuabai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DFS以及BFS的用途以及对比相关的知识,希望对你有一定的参考价值。
实现过程中的不同点:
BFS:采用一个队列来控制哪些节点需要访问,以及从上一节点向下一节点转变,多了一个计数器。
DFS:采用递归的思想沿着某一个节点不停的向底下深挖。
相同点:
1 方向表,即(x,y)的四周的方向。
2 状态表,用来判断该节点是否已经访问过了。
3 边界检测,在进行递归或者入队之前必须对边界进行检测,符合条件才能递归或者入队。
4 判断目标,如果出现目标则进行处理。
流程:
BFS,DFS的流程大体上都差不多,只不过在上一节点到下一节点的方式上有所区别。
用途:
BFS:找到最小路径(无加权) 例如:组成整数的最小平方数数量
DFS:找到目标 例如:查找最大的连通面积
以上是关于DFS以及BFS的用途以及对比的主要内容,如果未能解决你的问题,请参考以下文章
经典图算法Java代码实践:BFS,DFS以及几种最短路径算法