Alg.22.递归

递归特征:

  • 自身调用:原问题可以分解为子问题,子问题和原问题的求解方法是一致的,即都是调用自身的同一个函数。
  • 终止条件:递归必须有一个终止的条件,即不能无限循环地调用本身。
public int sum(int n) {  
    if (n <= 1) {
        return 1;
    } 
    return sum(n - 1) + n; 
}

../_images/Alg.22.递归-2023-05-11-1.png

递归经典问题

  • 阶乘问题
  • 汉诺塔问题
  • 斐波那契数列
  • 青蛙跳台阶
  • 二叉树深度
  • 快速排序、归并排序(分治算法体现递归)

https://mp.weixin.qq.com/s?__biz=Mzg3Mzc0NjUzMQ==&mid=2247497052&idx=2&sn=14aca9fdb86d38b8765d6440a7600240&source=41#wechat_redirect