zoukankan      html  css  js  c++  java
  • 搜索---BFS

    搜索

      深度优先搜索和广度优先搜索广泛的应用于树和图中,但是他们的应用远不止于此。

    BFS

      广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点,遍历过的节点不能再次被遍历。

      第一层:

      0->{6.2.1.5}

      第二层:

      6->{4}

      2->{}

      1->{}

      5->{3}

      第三层:

      4->{}

      3->{}

      每一层遍历的节点都与根节点的距离相同,设di表示第i个节点与根节点的距离,推导出一个结论:对于先遍历的节点 i 与后遍历的节点 j,有 di <= dj。利用这个结论,可以求解最短路径等 最优解 问题:第一次遍历到目的节点,其所经过的路径为最短路径。应该注意的是,使用 BFS 只能求解无权图的最短路径,无权图是指从一个节点到另一个节点的代价都记为 1。

    在程序实现BFS时需要考虑以下问题:

    • 队列:用来存储每一轮遍历得到的节点
    • 标记:对于遍历过的节点,应该将其标记,防止重复遍历。
  • 相关阅读:
    Python3 MySQL 数据库连接
    python3中线程池
    python中paramiko模块和mysql数据库的操作
    linux定制的补充
    linux 定制
    利用BIND搭建自己的私有根及授权域
    Python3下的paramiko模块
    mysql在linux下的安装与优化
    Linux下Nagios的安装与配置
    CentOS 6.7中安装python3.5
  • 原文地址:https://www.cnblogs.com/yjxyy/p/11109543.html
Copyright © 2011-2022 走看看