回溯算法,一种通过探索所有可能的候选解来找出所有的解的算法。

它采用试错的思想,尝试分步去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步的答案不能得到正确的解答的时候,它将退回到上一步甚至是上几步的计算,再通过其它可能的分步再次尝试寻找问题的答案。

举个类似的生活例子,比如放羊娃的羊在分岔路口走丟了,他顺着不同的岔路口寻找,一个岔路口一个岔路口的去尝试找羊。如果找不到羊,回到上一个岔路口,换另一条路,直到找到羊为止。

如下找羊的决策路线图:

什么是回溯算法?

放羊娃在A方向找,遇到岔路口1,然后走B方向,再遇到岔路口2,然后选择走D方向,没找到;

他回到岔路口2,又朝E方向走,没找到羊;

他又回到岔路口2,没有其他路,继续返回到岔路口1,选择C方向,直到找到羊,这就是回溯。

有了这一节的基础,下一次我们通过一道NOC的复赛真题来进一步理解回溯算法的代码实现。

本站内容未经许可,禁止任何网站及个人进行转载。