微信扫一扫打赏支持

回溯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 } 

 

posted @ 2017-07-04 22:49  范仁义  阅读(830)  评论(0编辑  收藏  举报