BFS 搜索

BFS 搜索

      广度优先搜索是一个分层的搜索过程,没有回退过程,是非递归的

     BFS算法思想是:对一个无向连通图,在访问图中的某一顶点v后,由 v 出发,依次访问v的所有未访问过的邻接顶点w1,w2,w3.....wt;然后在顺序访问w1,w2,w3.....wt的所有还未访问过的顶点;在从这些顶点出发,在访问他们的所有还未访问过的邻接顶点,.........,如此直到图中的所有顶点都被访问为止;

如果用邻接矩阵存储图(设顶点个数为 n ),则 BFS 算法的伪代码如下:

void BFS(顶点 i) { //从顶点i进行广度优先搜索 
   visited[ i ] = 1;   //将顶点 i 的访问标志置为 1
   将顶点 i 入队列 
   while( 队列不为空 ) 
   { 
       取出队列头得顶点,设为 k 
       for(int j=0;j<n;j++)   //对其他所有顶点 
       { 	
   	     //j 是 k的邻接顶点,且顶点 j 没有访问过 
   	     if(Enge[k][j]==1&& !visited[j])
   	       { 
   	        将顶点 j 的访问标志置 1  
   	         将顶点j入队列        
		   } 	
       } 
   } 
} 

如果问题有解,则采用广度优先搜索必能找到解,且找到的解的步数是最小的,解是最优的;

例子如下 点击这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值