搜索
一.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.空间复杂度
浙公网安备 33010602011771号