如何求给定数组的全排列?...回溯算法的基本思想是: 从一条路往前走,能进则进,不能进则退回来,换一条路再试....整个回溯查找的过程就是一颗决策树的深度遍历过程,期间主要涉及到以下几种操作:
选择: 每个树节点的深度遍历,都是一次选择过程,如绿色箭头部分
回溯: 每次选择后,不管结果是否是期望的,都要返回到上一个状态...,如红色箭头操作
剪枝: 对不满足遍历条件的节点,不进行深度遍历,如红叉部分
路径: 遍历经过的节点叫做路径,每个能达到最深叶子节点的路径就是期望的结果值
回溯算法实现的伪代码如下
backtrack...回溯算法就是穷举法,在回溯过程中使用剪枝方法,排除一些不可能到达最终状态(即答案状态)的节点,从而减少状态空间树节点的生成.