当前位置:萝卜系统 > 硬件软件教程 > 详细页面

容易便捷的迭代与递归

容易便捷的迭代与递归

更新时间:2023-06-22 文章作者:未知 信息来源:网络 阅读次数:

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

递归迭代的区别_递归迭代函数系统_递归和迭代的区别

递归和迭代

学习技术之路还有很长的路要走

首先,我们查询百度百科的定义.

是指由功能,过程,子例程直接或间接在运行的程序中调用自身引起的重入现象. 在计算机编程中,递归指的是一个过程: 一个函数不断地对其自身进行引用,直到知道所引用的对象为止.

重复反馈过程的活动通常旨在达到所需的目标或结果. 该过程的每次迭代都称为“迭代”,并且每次迭代的结果都将用作下一次迭代的初始值.

感谢您的定义,这令人头痛吗?阅读后,它看起来似乎可以理解但不是很容易理解吗?

接下来,让我们一起了解递归和迭代.

递归图片

递归:

递归迭代函数系统_递归和迭代的区别_递归迭代的区别

从问题开始,即从顶层开始,深入最简单的问题(底层解决方案),获得答案,如果完成,则提交,如果尚未完成,请返回再次使用上一层,使用底层解决上层问题,然后逐层返回顶层.

它既关注当前状态,也关注先前的状态,并且不知道其将来的状态是否正在运行,但是必须返回到先前的状态.

示例: 给数字100,然后从1到100求和.

如果您想递归解决问题:

static int recursion(int n){

if(n==1){

//递归出口

return 1;

}else{

return n+recursion(n-1);

}

}

斐波那契数列:

static int recursion(int i){

if(i == 1 || i == 2){

返回1;

}

其他{

返回递归(i-1)+递归(i-2);

//第三项等于最后两项的总和

}

递归迭代函数系统_递归和迭代的区别_递归迭代的区别

}

有无数经典的递归算法,例如各种二叉树方法. 虽然它可以减少代码量,但它也带给人们找到退出的乐趣递归和迭代的区别,但是它也占用了大量内存,并且还会导致运行时间增加. 较差的递归算法对计算机造成的后果更加困难.

阅读递归后,您渴望看到迭代吗?

Jacobi迭代算法

迭代:

从最简单的问题开始,形成答案后,比较需求是否已完全迭代,如果没有,则继续迭代直到找到解决方案. 在此过程中,有一个新的解决方案可以覆盖旧的解决方案. 直接覆盖意味着它仅关注当前状态,而不返回或影响先前或将来的状态. 它只会产生当前结果,并返回最终结果,直到迭代结束.

插图:

欧几里得算法(a和b的最大公约数= a和mod b的最大公约数):

/ *旋转相分方法* /

public static int gcd_2(int a,int b){

如果(a <0 ||="" b=""><0) *防止错误*="">

返回0;

递归和迭代的区别_递归迭代函数系统_递归迭代的区别

int temp;

/ * b始终代表较小的数字,如果不是,则交换a,b的值* /

同时(b> 0){

temp = a%b;

a = b;

b =温度;

}

返回a;

}

斐波纳契数列:

/ *斐波那契数列* /

public static int fibonacci(int n){

如果(n <>

递归迭代的区别_递归迭代函数系统_递归和迭代的区别

返回0;

if(n == 1 || n == 2)/ *特殊值不迭代* /

返回1;

int f1 = 1,f2 = 1,fn = 0; / *迭代变量* /

int i;

for(i = 3; i <= n;="" i="" ++){/="" *使用i的值限制迭代次数*="">

fn = f1 + f2;

f1 = f2; // f1和f2向前迭代递归和迭代的区别,其中f2在f1前面

f2 = fn;

}

返回fn;

}

摘要:

两者之间的区别在于您自称自己并用新的替换旧的. 也可以说这没有什么区别,因为根本没有人. 现在,两者的主要概念不在同一个领域,而第二个也有部分相交,都是为了找到出口并获得解决方案.

递归: 给自己打电话,一步一步地找到出口,而出口可能不是解决方案.

迭代: 用新的替换旧的,导出必须是解决方案.


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-259960-1.html



温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html