递归和递推的区别

目录

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];
    }
}
相关推荐
小凡子空白在线学习几秒前
工作拆分so总结
java·jvm·算法
88号技师1 分钟前
2026年2月新锐一区SCI-完整家庭互动优化算法Undivided Family Interaction Algorithm-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
手揽回忆怎么睡5 分钟前
java打包无效的发行版:xx,临时修复当前窗口指定 JDK21
java·开发语言
李日灐14 分钟前
【优选算法5】位运算经典算法面试题
后端·算法·面试·位运算
汉克老师14 分钟前
GESP5级C++考试语法知识(十四、分治算法(一))
算法·归并排序·排序·分治算法·gesp5级·gesp五级
一直有一个ac的梦想15 分钟前
cmu15445 2025fall lec15 query optimiaztion Pt1
java·服务器·数据库
郝学胜-神的一滴16 分钟前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表
SamDeepThinking18 分钟前
IntelliJ IDEA 中有什么让你相见恨晚的技巧?
java·后端·程序员
SamDeepThinking20 分钟前
为什么选微服务而不是动态扩容单体
java·后端·架构
风筝在晴天搁浅20 分钟前
字节 LeetCode CodeTop 912.排序数组
算法·leetcode