标签:判断 bsp class 广度优先 深度优先搜索 深度优先 turn span tin
深度优先搜索和广度优先搜索
1. 思路
深度优先搜索伪代码:
void dfs(状态A){
if (A不合法) return;
if (A为目标状态) 输出;
if (A不为目标状态) dfs(A+x);
}
广度优先搜索伪代码:
Q.push(head)
while (!Q.empty()){
temp=Q.front();
Q.pop;
if (temp为目标状态) 输出;
if (temp不合法) continue;
if (temp合法) Q.push(x);//x表示temp在搜索树中的所有子节点
}
2. 适用范围——如何判断用深搜还是广搜?
DFS:可以不重不漏枚举所有可达目标状态的路径。
BFS:效率高,适用于找最快到达目标状态的路径。占用空间大。
① “最快”、“最短”、“最近”——广搜
② 没有深度限制,深搜可能永远搜不到头——广搜
标签:判断 bsp class 广度优先 深度优先搜索 深度优先 turn span tin
原文地址:https://www.cnblogs.com/travelller/p/8794890.html