zoukankan      html  css  js  c++  java
  • BFS与DFS

    DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。

    类似于树的先根遍历
    深搜例子:走迷宫,你没有办法用分身术来站在每个走过的位置。不撞南山不回头。

    DFS思想:

    一直往深处走,直到找到解或者走不下去为止




    BFS:使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进、出队列。
    类似于树的按层次遍历的过程

    广搜例子:你的眼镜掉在地上以后,你趴在地板上找。你总是先摸最接近你的地方,如果没有,再摸远一点的地方……

    BFS思想:
    1.从初始状态S开始,利用规则,生成下一层的状态。
    2.顺序检查下一层的所有状态,看是否出现目标状态G。
    否则就对该层所有状态节点,分别利用规则。生成再下一层的所有状态节点。
    3.继续按上面思想生成再下一层的所有状态节点,这样一层一层往下展开。直到出现目标状态为止。

    按层次的顺序来遍历搜索树

  • 相关阅读:
    Ubuntu分区挂载
    YOLOv3:Demo needs OpenCV for webcam images
    tf.strided_slice函数
    numpy:np.random.seed()
    python:split()函数
    python:set() 函数
    python:zip() 函数
    python:enumerate 函数
    电脑无法上网,DNS出现fec0:0:0:ffff::1%1问题
    python:map 函数
  • 原文地址:https://www.cnblogs.com/wshyj/p/6260294.html
Copyright © 2011-2022 走看看