在学习搜索的时候,对这三个,主要是后二者有一点点混乱,所以这此记录一下。

深度优先

优先遍利子支的最深层。

广度优先

优先遍利每一层,之后再遍利子支

迭代深度优先

就是加一个限制,以到某一层为界,然后进行深度迭代。非常像广度优先,但是!!有一点不同!!当深度增加后,不再是遍利完所本层再进行子支,而是优先子支。这样一来,当深度不段增加后,与广度优先的区别就会越来越大。

比如, a -> b0 -> b1 -> c0 -> c1是广度优先,那么迭代到第三层后,就会变成a -> b0 -> c0 -> b1 -> c1。这么种感觉。当深度越大,这种区别就会越大。

一般而言,可以用迭代深度优先替换广度

参考

深度优先,广度优先和迭代加深搜索算法