回溯0--递归回溯算法框架

Posted 范仁义

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回溯0--递归回溯算法框架相关的知识,希望对你有一定的参考价值。

递归回溯算法框架

一、心得

 3 都是在for下的if下的 
 4 保存结果,找下一步,回溯,这三个是一起的
 5 还有一个到达目的地输出解放在外面就好 


search后面的k是轮数 

三个数组:
原数据数组
标记数组
储存结果数组

 

框架二 到目的地的情况要多加1,因为满足了的下一轮就好判断 

 

 

二、代码

 1 /*
 2 递归回溯算法框架:
 3 都是在for下的if下的 
 4 保存结果,找下一步,回溯,这三个是一起的
 5 还有一个到达目的地输出解放在外面就好 
 6 */ 
 7 /*
 8 框架一 
 9 */ 
10 int search(int k){
11     for(int i=1;i<=算法总数;i++){
12         if(满足条件){
13             保存结果
14             if(到目的地) 输出解;
15             else search(k+1);
16             恢复:保存结果之前的状态(回溯一步) 
17         }
18     }
19 } 
20 /*
21 框架二 
22 */ 
23 int search(int k){
24     if(到目的地) 输出解;
25     else 
26         for(int i=1;i<=算法总数;i++){
27             if(满足条件){
28                 保存结果
29                 search(k+1);
30                 恢复:保存结果之前的状态(回溯一步) 
31             }
32     }
33 } 

 

以上是关于回溯0--递归回溯算法框架的主要内容,如果未能解决你的问题,请参考以下文章

纠正用于回溯图着色算法的 Java 递归代码

[XJTUSE 算法设计与分析] 第五章 回溯法

2023-04-19 算法面试中常见的递归和回溯问题

有人可以帮助解释这个回溯算法中的递归吗?

数独代码(回溯)

递归回溯最简单易懂的小例子