什么时候用BFS

一.图的遍历
1.层级遍历
2.由点及面
3.拓扑排序
二.最短路径
求简单图最短路径,即所有边都等权或者无权的无向图中

能用BFS解决的问题一定不要用DFS
BFS和DFS的时间复杂度

BFS的时间复杂度:
若一个图有M条边N个点,参考算法导论

矩阵形式的BFS
通用的两种工具:

  1. 坐标变换矩阵
  2. 边界函数检查

BFS的一些注意
在无向图的遍历中除了拓扑排序用度来控制加入顺序和是否入列,其余BFS的使用都要结合HashSet来去重,因为一条边的两个端点AB,A在B的邻接表里,B也在A的邻接表里,重复添加没效率

你可能感兴趣的:(什么时候用BFS)