## 深度优先搜索 (DFS)
+主条目:[DFS](/search/dfs/)
+
优先深入遍历靠前的节点,可以用堆栈实现。
## 宽度优先搜索 (BFS)
+主条目:[BFS](/search/bfs/)
+
优先扩展浅层节点,逐渐深入,可以用队列实现。
### 双向宽度优先搜索
+主条目:[双向广搜](/search/dbfs/)
+
从状态图上起点和终点同时开始进行宽度优先搜索,如果发现相遇了,那么可以认为是获得了可行解。
## A\* 搜索
+主条目:[A\*](/search/astar/)
+
## IDA\* 搜索
+主条目:[IDA\*](/search/idastar/)
+
## 剪枝
搜索往往是在庞大的解空间中尝试获得最优解,这时候剪枝就显得十分必要了。剪枝顾名思义,是运用已有的信息,尽早地确定一种方案是否可行,如果已经知道无法获得最优解就及时退回。这样的操作对于搜索树来说,就相当于是在搜索树上剪掉一些枝杈。