标签:判断 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