zoukankan      html  css  js  c++  java
  • Navigation(三) 深度优先搜索DFS、广度优先搜索BFS

    一、图搜索

    如图  S是起点,G是终点,左图为真实情况,右边为模拟搜索的过程,也是数据结构

    图搜索的基本步骤为:

    1、首先,应该有一个容器,用于放置即将被访问的节点(初始状态当然是包含S起点)

    2、执行以下循环:(1)remove 从容器中弹出一个节点  (2)expansion 扩展该节点的邻居节点  (3)push 将邻居节点压入容器

    3、当容器empty时,停止循环

    注:如果图是回环的,则创建一个新容器装被访问过的节点。

    二、深度优先搜索

      深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search 。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。

      深度优先搜索以数据结构体现为堆栈,在图搜索的基本步骤下,弹出和扩展过程中遵循“先进后出"原则:

      如下图所示,深度优先搜索一个方向搜到底

    三、广度优先搜索 

       广度优先搜索首先搜索同级未扩展节点。遵循队列的”先进先出“原则:

    博文主要是总结自己的学习,因此有很多知识点没有提到,仅仅提了个人比较容易遗忘的或者非常重要的知识点。很多资料来源于网络和对一些课程的整理,侵权删。格式没花精力调整,望谅解。
  • 相关阅读:
    关系型数据库和非关系型数据库的区别
    总结篇3-python数据结构和算法
    总结篇2-python进阶
    总结篇1-python基础
    测试sql星级判定函数
    1、Anyproxy简介
    Python内置logging模块-- 日志
    python+ selenium 绕过浏览器检测
    python-selenium,解决 遇到阿里无痕登录验证
    seldom
  • 原文地址:https://www.cnblogs.com/JuiceCat/p/12517946.html
Copyright © 2011-2022 走看看