算法之递归

Posted jiangxiaoxian

tags:

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

我直接用王争老师的例子了。
技术分享图片

这是典型的递归例子,表达式如下

int f(int n) {
  if (n == 1) return 1;
  return f(n-1) + 1;
}

解释下这段代码,如果你是第五排

f(5) ->                             f(5-1)   + 1 
      ->                     (f(4-1) + 1)   + 1 
      ->             ((f(3-1) + 1) + 1)  + 1 
      ->    (((f(2-1) + 1) + 1) + 1)  + 1
      ->    (((1+         1) + 1) + 1)  + 1
      ->     5

递归要满足三个条件:
1.一个问题可以分解为几个子问题的解
2.子问题与其父问题的解决思路一样
3.存在递归的终止条件
例子中的终止条件是 f(1) = 1即第一排的人知道自己是第一排,否则无法用递归。






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

08《算法入门教程》递归算法之斐波那契数列

算法之递归

快速排序-递归实现

算法之递归

Java基础之方法的调用重载以及简单的递归

算法之使用递归求解全排列