关闭

关于深度优先和广度优先的问题

2039人阅读 评论(0) 收藏 举报
分类:

Depth-First Search和Breadth-First Search,即深度优先和广度优先是图的两种搜索的方法。其实与其说是方法,不如说是两种思想。下面我们就来介绍这两种思想。


1) Depth-First Search

深度优先是指在图的查找中,对每一个分支深入到不能再深入为止,如果到达了终点,则选择另一个未访问的顶点,继续查找,知道每个节点都被访问到,并且每个节点只能被访问一次。

基本算法:

a) 访问顶点V

b) 依次从V的未访问的节点出发,遍历所有与V在相通路径上的节点。

c) 选取还未被访问的结点,重复上面的过程。


下图就是深度优先的一个遍历过程。




2) Breadth-First Search

广度优先是分层次的展开检查图中的所有结点,知道找到最终的结果。也就是说首先搜索与s距离为k的所有结点,然后在搜索与s距离k+1的所有结点。算法通过已找到的节点和未找到的节点的边界向外扩展。Dijkstra算法以及prim算法都是应用的这一思想。


下图就是广度优先的一个遍历过程。




0
0
查看评论

深度优先搜索 广度优先搜索类训练题

【题目1】N皇后问题(八皇后问题的扩展) 【题目2】排球队员站位问题 【题目3】把自然数N分解为若干个自然数之和。 【题目4】把自然数N分解为若干个自然数之积。 【题目5】马的遍历问题。 【题目6】加法分式分解 【题目7】地图着色问题 【题目8】在n*n的正...
  • koudaidai
  • koudaidai
  • 2012-05-27 16:40
  • 2641

图——应用图的深度优先遍历思路求解问题

/* *Copyright (c) 2015 , 烟台大学计算机学院 *All right resvered . *文件名称: 应用图的深度优先遍历思路求解问题.cpp *作 者: 郑兆涵 *图——应用图的深度优先遍历思路求解问题 */ 问题...
  • zzh_569754126
  • zzh_569754126
  • 2015-11-22 11:19
  • 1402

LeetCode上Tag为深度优先搜索(Depth-frist Search)的题目整理

101. Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, this binary tr...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:59
  • 272

深度优先搜索(DFS)详解

深度优先搜索(DFS) 【算法入门】 1.前言 深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先...
  • liangzhaoyang1
  • liangzhaoyang1
  • 2016-05-15 07:50
  • 7837

关于深度优先搜索的练习

对于dfs(深搜)一窍不通的蒟蒻打算改变自己了.. 简单的选数 【例1】素数环 【题目描述】从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。 【算法分析】 非常明显,这是一道回溯的题目。从1开始,每个空位有20种可能,只要填进去的数合法:与前面的数不相同;与左边...
  • qq_40475868
  • qq_40475868
  • 2018-01-16 22:38
  • 16

【算法】深度优先搜索

转载出处:rapheal@iteye:http://rapheal.iteye.com http://rapheal.iteye.com/blog/1526861 作者:raphealguo(at)qq.com 1.前言 深度优先搜索(缩写DFS)有点类似广度优先搜索,也...
  • byplane
  • byplane
  • 2016-09-06 15:30
  • 601

深度优先搜索算法(DFS)

1. 深度优先搜索属于图的遍历算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。 2.搜索策略: 深度优先遍历图的方法是,从图中某顶点v出发: (1)访问顶点v; (2)依次从v的未被访问的邻接点...
  • u011898209
  • u011898209
  • 2013-11-22 20:50
  • 465

深度优先搜索算法(DFS) 总结

这段时间做DFS的题目一直处于这样一个状态:我知道这种类型的题(全遍历问题,N皇后问题)用DFS求解,但是在代码的实现上经常会遇到各种各样的问题,完成一个算法十分的拖泥带水,有时还需要跟着网上的代码走一遍。         我希望能有一种一劳永逸的思路来解...
  • Jassy1994
  • Jassy1994
  • 2016-11-29 17:53
  • 543

leetcode刷题,总结,记录,备忘 301

leetcode301Remove Invalid Parentheses Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible ...
  • guicaisa
  • guicaisa
  • 2016-05-02 20:23
  • 369

每天一道算法题(六)深度优先算法(DFS)学习及Java实现

DFS的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底
  • u014394715
  • u014394715
  • 2016-04-19 17:17
  • 11035
    个人资料
    • 访问:267100次
    • 积分:2721
    • 等级:
    • 排名:第15682名
    • 原创:68篇
    • 转载:7篇
    • 译文:0篇
    • 评论:52条
    文章分类
    最新评论