广度优先搜索

文章目录

  • 广度优先搜索
    • 算法原理
    • 算法实现
    • 算法应用
      • 例子1:最短路径问题
      • 例子2:连通性问题
    • 总结

广度优先搜索

广度优先搜索(BFS)是一种图搜索的算法。在图中,BFS搜索算法是从根节点开始,沿着树的宽度遍历图的节点。BFS算法通常用队列来实现。

算法原理

BFS算法的原理是从根节点开始,将子节点逐层放入队列中,然后依次将队列中的节点取出,并将其未访问过的相邻节点加入队列中,直到队列为空。如果所有节点都被访问过,则搜索完毕。

下面是BFS算法的伪代码:

BFS(G, s)
    for each vertex v in G
        color[v] = white
        d[v] = infinity
        p[v] = null
    color[s] = gray
    d[s] = 0
    p[s] = null
    enqueue(Q, s)
    while Q is not empty
        u = dequeue(Q)
        for each v in adj[u]
            if colo

你可能感兴趣的:(#,Java相关算法,宽度优先,python,算法)