全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 就业前景 > 软件开发 > > “递归”和“迭代”有什么区别?(递归和迭代有什么区别)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

“递归”和“迭代”有什么区别?(递归和迭代有什么区别)

发布时间:4 周 前 栏目:软件开发 浏览:

1、“递归”和“迭代”有什么区别?

“递归”和“迭代”的区别如下:

1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合。

2、迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B。

3、递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出。

“递归”和“迭代”有什么区别?

2、递归和迭代有什么区别?

递归和迭代都是循环的一种。

简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。

递归循环中,遇到满足终止条件的情况时逐层返回来结束。迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。

递归的例子,比如给定一个整数数组,采用折半查询返回指定值在数组中的索引,假设数组已排序,为方便描述,假设元素都为正数,数组长度为2的整数倍。

折半查询是查询的一种,比遍历所有元素要快很多。

intFind(int*ary,intindex,intlen,intvalue)

{

if(len==1)//最后一个元素

{

if(ary[index]==value)returnindex;//成功查询返回索引

return-1;//失败,返回-1

}

//如果长度大于1,进行折半递归查询

inthalf=len/2;

//检查被查值是否大于上半部分最后一个值,如果是则递归查询后半部分

if(value>ary[index+half-1])

returnFind(ary,index+half,half,value);

//否则递归查询上半部分

returnFind(ary,index,half,value);

}

迭代经典例子就是实数的累加,比如计算1-100所有实数的和。

intv=1;

for(i=2;i<=100;i++)

{

v=v+i;

}

“递归”和“迭代”有什么区别?

3、迭代和递归的区别是什么?

一、含义不同;

程序调用自身的编程技巧称为递归,是函数自己调用自己。一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决。

迭代利用变量的原值推算出变量的一个新值。如果递归是自己调用自己的话,迭代就是A不停的调用B。

二、转换不同:

递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换。能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出。

递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量。而迭代是循环的一种形式,这种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少。

迭代法的主要研究课题是对所论问题构造收敛的迭代格式,分析它们的收敛速度及收敛范围。迭代法的收敛性定理可分成下列三类:

①局部收敛性定理:假设问题解存在,断定当初始近似与解充分接近时迭代法收敛;

②半局部收敛性定理:在不假定解存在的情况下,根据迭代法在初始近似处满足的条件,断定迭代法收敛于问题的解;

③大范围收敛性定理:在不假定初始近似与解充分接近的条件下,断定迭代法收敛于问题的解。

来源:百度百科-迭代法

4、递归与迭代的区别

1、“递归”是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现像.。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。

2、“迭代”的含义是:重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号