递归和递推的区别

目录

1、递推

2、递归

3、结言

递归

递推


1、递推

递推就是说从初值出发后一直运算到所需的结果。

------从已知到未知。(从小到大)

举一个简单的例子:

每天能学习一个小时的编程,那么一个月之后可以学到三十小时的编程知识。

2、递归

递归就是说从所需的结果出发到不断回溯之前,直到回溯运算到初值,再递推回所需要求的结果。

------从未知到已知,再从已知到未知。(从大到小,再从小到大)

举一个更简单的例子:

你想进大厂或者年薪百万,就必须编程牛比得很,就得减少游戏时间,减少美色,减少快餐式的短视频消耗,努力学习。就这样一个大目标被分解为一个接着一个的小目标,通过完成一个接着一个的小目标来完成大目标。

3、结言

  • 递归就是指程序调反复用自身的编程思想。
  • 迭代就是可以说是用递推的思想,根据递推公式不断演进得到变量新值

结合一个经典的例子:斐波那契数列

递归

java 复制代码
class Solution {
    public int fib(int n) {
        if(n == 0)
            return 0;
        
        if(n == 1)
            return 1;

        return fib(n-1) + fib(n-2);

    }
}

递推

java 复制代码
class Solution {
    public int fib(int n) {
        int[] dp = new int[n+1];

        if(n == 0)
            dp[0] = 0;

        else if(n == 1)
            dp[1] = 1;

        else{
            dp[0] = 0;
            dp[1] = 1;

            for(int i=2; i<=n; i++){
                dp[i] = dp[i-1] + dp[i-2];
            }
        }

        return dp[n];
    }
}
相关推荐
学长毕设5 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw6 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
UIU1147 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
源码集结号7 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场7 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi7 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
啃瓜子的松鼠8 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David8 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放9 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友