递归的三大步骤
1.明确函数要做什么,也就是定义递归的功能。
2.明确递归的结束(退出递归)的条件。
3.找到函数的等价关系式,要不断缩小参数的范围
模型一:在递去的过程中解决问题
function recursion(大规模){
if (end_condition){ // 明确的递归终止条件
end; // 简单情景
}else{ // 在将问题转换为子问题的每一步,解决该步中剩余部分的问题
solve; //递去
recursion(小规模); // 递到最深处后,不断地归来
}
}
模型二:在归来的过程中解决问题
function recursion(大规模){
if (end_condition){ // 明确的递归终止条件
end; // 简单情景
}else{ //先将问题全部描述展开,再由尽头返回依次解决每步中剩余部分的问题
recursion(小规模); // 递去
solve; //归来
}
}
关键在于,理解透“递”和“归”的过程。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!