方法递归

声明: 本文主要作为作者的复习笔记,由于作者水平有限,难免有错误和不准确之处,欢迎读者批评指正.

目录快捷跳转

    • 方法递归
    • 什么时候能使用递归(什么场景下适合使用递归这种程序结构来解决问题)
    • 如何写出递归函数
    • 拓展

方法递归

方法在执行过程中又调用自身的过程,称之为"递归"(一个函数自己调用自己);

什么时候能使用递归(什么场景下适合使用递归这种程序结构来解决问题)

同时满足以下三个条件:

  1. 一个大问题可以拆分为多个子问题;
  2. 拆分后的子问题和原问题,除了数据规模不同之外,解决的思路完全相同;
  3. 存在递归终止条件(拆分子问题是有限的,不可能无限拆分下去);

如何写出递归函数

一定要注意方法的语义(定义出来这个递归函数到底要解决什么问题),假设这个方法已经实现好了,我们只需要利用这个方法辅助我们解决问题即可.

递归:

  1. 递 => 拆分,归 => 返回;
  2. 根据自己调用自己的过程,不断将大问题拆分为小问题;
  3. 一直到终止条件开始一步步向回返回;

拓展

  1. 计算机运行从最底层的微观角度一步步向上走解决问题(自底向上),先不断解决子问题,依次向上解决原问题(例如动态规划算法);
  2. 人脑从宏观角度解决问题(自顶向下),思考问题是从最开始大问题拆分为子问题计算结果(回溯算法);
  3. 递归是学习数据结构和算法的钥匙;

你可能感兴趣的:(Java,java,开发语言,数据结构,算法)