算法小记(2) backtracking

回溯算法:

就是搜索一棵状态树的过程,这个过程类似于DFS,但是在决定搜索下一步的时候先作一次判断。如果ok再继续下一步搜索,这里等于是进行一次启发式的剪枝。

 

一般会有这么一行:

 

backtrack(current_state) {

    // blalala

    for next_state in next_states(current_state)

    if (possible(current_state, next_state))

        backtrack(next_state);

    // blalala

}

你可能感兴趣的:(算法)