递归和迭代有什么区别?

递归和迭代有什么区别?“递归”和“迭代”的区别如下:1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合。2、迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用…

大家好,又见面了,我是你们的朋友全栈君。

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

1、递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合。
递归和迭代有什么区别?
2、迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B。

3、递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出。
递归和迭代有什么区别?
递归和迭代都是循环的一种。
简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。

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

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

1 int Find(int *ary,int index,int len,int value)
2 {
3 if(len==1)//最后一个元素
4 {
5 if (ary[index]==value)return index;//成功查询返回索引
6 return -1;//失败,返回-1
7 }
8 //如果长度大于1,进行折半递归查询
9 int half=len/2;
10 //检查被查值是否大于上半部分最后一个值,如果是则递归查询后半部分
11 if(value>ary[index+half-1])
12 return Find(ary,index+half,half,value);
13 //否则递归查询上半部分
14 return Find(ary,index,half,value);
15 }

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

1 int v=1;
2 for(i=2;i<=100;i++)
3 {
4 v=v+i;
5 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134895.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux下定时执行脚本实例

    Linux下定时执行脚本实例在Linux下我们用crontab来实现定期执行脚本。查看crontab    输入命令:cat/etc/crontabcrontab-u//设定特定用户的定时服务crontab-l//列出当前用户定时服务内容crontab-r//删除当前用户的定时服务crontab-e//编辑当前用户的定时服务在设定编辑之前都建议列出服务查看一下:crontab-l显示有一个已经设定好的…

    2022年7月17日
  • Java面试之数据结构& 算法& 计算机基础

    Java面试之数据结构& 算法& 计算机基础Java面试之数据结构& 算法& 计算机基础

    2022年4月22日
  • Cisco AAA 认证 总结「建议收藏」

    Cisco AAA 认证 总结「建议收藏」Authentication认证一:使用本地数据库R1>enR1(config)#aaanew-model(打开aaa认证)R1(config)#aaaauthenticationlogindefaultlocal配置任何登入采用Local本地用户数据库R1(config)#usernamebd…

    2022年6月1日
  • Java Eclipse自动补全设置[通俗易懂]

    Java Eclipse自动补全设置[通俗易懂]Eclipse代码自动补全功能默认只包括点”.” ,即只有输入”.”后才出现自动补全的提示框。想要自动补全总是去按“Alt+/”也很麻烦。其实只需简单在Eclipse中进行设置即可实现输入任意及符合自动出现自动补全提示框。具体设置步骤如下:   选择Eclipse菜单条中的Windows菜单下的Preferences项。在左侧找到“Java”=》“Editor”=》

    2022年6月28日
  • 一个普通java程序员的10年…泪奔 o(╥﹏╥)o o(╥﹏╥)o[通俗易懂]

    一个普通java程序员的10年…泪奔 o(╥﹏╥)o o(╥﹏╥)o[通俗易懂]大家好,我是曹尼玛,是一个很普通java程序员,今天看了下日期,转眼间,毕业9年,工作10年了,经历比较多,受伤比较多,收获比较多,改变也很多,对未来也有一些规划,对java新人有一些中肯的建议…过去10年的java人生回顾人生回顾,酸甜苦辣,蛋定就好…我的原生家庭和学业本D89年出生在沿海地区的一个普通农村家庭,一直供我上学,感恩父母!上的是农村小学,乡镇初中,乡镇高中,学习成绩中上,加上教育一般,以及我智商一般,即使努力,也就考了个破本科,选了个不用拼爹的专业-计算机科学与技术。.

    2022年6月10日
  • nmap 使用注意事项

    nmap 使用注意事项

    2022年1月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号