filletoto

导航

搜索

一.BFS&DFS基础

搜索是暴力法的具体体现,具有简单直接的特点,利用了计算机强大的计算能力。(也是用来混部分分的绝佳利器)

搜索的基础算法分为两处:宽度优先搜索(又叫广度优先搜索,即BFS),深度优先搜索(DFS)

思维区别

BFS:“全面扩散,逐层递进”

DFS:“一路到底,逐步回退”

DFS代码框架

void dfs(层数,其他参数)
{
	if(出局判断)
	{
		更新答案
		return ;
	}
	(剪枝)
	for(枚举下一层可能的情况)
	{
		if(used[i]==0)
		{
			used[i]=1;
			dfs(层数+1,其他参数);
			used[i]=0;
		}
	}
	return ; 
}

DFS与BFS对比

1.时间复杂度

  差不多,都是O(n+m)

2.空间复杂度

  

posted on 2024-02-09 16:27  filletoto  阅读(6)  评论(0编辑  收藏  举报