迭代加深算法
前言
- 关于DFS:
DFS算法是沿着搜索树的根节点,一直遍历完该搜索树之后再回溯继续搜索的一种算法。缺点是可能会出现答案在搜索树层数很浅,在靠后的子树中,但由于搜索次序需要遍历完一棵搜索树所有的节点,所以导致效率低下。 - 关于BFS:
BFS算法是沿着搜索树的根节点,按层遍历完该搜索树所有节点的一种算法。缺点是可能会出现答案在搜索树层数很深的地方,导致效率低下。且如果是满二叉树这样的搜索树很可能会使在BFS的过程中队列爆掉。在层数很多的时候会占用很多的空间。 - 关于迭代加深:
迭代加深算法其实是一种结合了DFS和BFS两种算法特点的搜索算法。我们会预设搜索的层数,然后仅在该层数以内进行DFS。这一算法很有效的避免了DFS可能会出现的效率低下的问题。
而似乎这样的算法思路和BFS相同,而且由于拓展层数的时候会重复搜索,所以反而更慢了。但其实,迭代加深有效的避免了使用大量空间的问题,相对于普通的BFS也是有优势的。
题目
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemon's Blog!
评论