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

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 }

递归和迭代有什么区别?相关推荐

  1. 算法 - 递归与迭代 区别与联系

    目录 迭代 递归 基本概念 应用场景 尾递归 递归与迭代区别 递归与迭代的转换 参考 文章放置于:https://github.com/zgkaii/CS-Notes-Kz,欢迎批评指正! 迭代 迭代 ...

  2. 递归和迭代的区别——以DNS为例

    递归和迭代的区别--以DNS为例 2021.7.22 可能或多或少都听说过:函数的递归调用,牛顿迭代法,在DNS(Domain Name System域名系统)中有递归查询和迭代查询两种······那 ...

  3. 迭代和递归的应用例子c语言,递归和迭代的应用以及区别

    斐波那契数列: 1 1 2 3 5 8 13 21 34 55 - fb(n) : 1 n <= 2 fb(n-1) + fb(n-2) n > 2 int fb(n) { if(n &l ...

  4. 研究青蛙跳台阶问题区别函数递归与迭代

    文章目录 前言 一.什么是青蛙跳台阶问题 二.使用递归和迭代(非递归)的区别 1.递归实现 2.迭代(非递归) 前言 青蛙跳台阶问题是函数递归的经典问题,也是求斐波那契数的变式,通过研究非递归(迭代) ...

  5. 递归与迭代的区别分析

    递归和迭代是很重要的编程思想,所以对于其原理还是很有必要清楚的. 迭代(iteration) 在 维基百科 上是这样介绍的: Iteration is the repetition of a proc ...

  6. python递归和循环的区别_Python递归与迭代

    1.递归与迭代: 递归和迭代都是循环的一种.简单地说,递归是重复调用函数自身实现循环.迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结 ...

  7. java迭代和 递归的异同_Java中的递归和迭代之间有什么区别?

    该递归和迭代都重复执行的指令集.递归是指函数中的语句重复调用自身时的情况.该迭代是当循环重复执行,直到控制条件为假.递归和迭代之间的主要区别在于,递归是一个过程,始终应用于函数,而迭代则应用于我们要重 ...

  8. python内置函数(2)-递归与迭代

    这篇文章简单介绍了迭代和递归的概念.两者的区别 什么是迭代: 迭代是重复反馈过程的活动,其目的通常是为了接近并达到所需的目标或结果.每一次对过程的重复被称为一次"迭代",而每一次迭 ...

  9. 递归和迭代_迭代与递归

    很多编程小白都会遇到'迭代'和'递归'的问题(包括我自己),大部分同学还是不知道迭代与递归的区别.下面我就尝试用最通俗易懂的模式讲解递归与迭代的区别. 1.迭代: 迭代其实很简单,我们在编程中经常用到 ...

最新文章

  1. 比特币SPV节点启动流程图
  2. python游戏编程入门书籍推荐-游戏编程入门书籍推荐:想要游戏编程尽快入门这些书不要错过...
  3. Python报错:IndentationError: expected an indented block
  4. as点击发送广播_Apache Flink 中广播状态的实用指南
  5. 电子商务公司的职能架构及基础岗位职能
  6. java基础知识——面向对象基本概念
  7. office另存为pdf的加载项_pdf怎么转换成word?打工人必备的丛林法则
  8. PhpSpreadsheet 电子表格(excel) PHP处理笔记
  9. C语言约瑟夫报数出圈算法,c语言实现约瑟夫环问题
  10. [原]敏捷开发-项目启动
  11. java 集合 总结 表_java-集合总结
  12. Android Fragment(一)
  13. 第三章 Docker 入门
  14. 赋值运算不会提升数据类型,算术运算会提升类型
  15. couldn't set locale: correctly报错的解决
  16. 数据库原理基本SQL语句练习题及答案1
  17. Vbox中Ubuntu和win7主机文件共享
  18. 从零集成腾讯广告SDK
  19. 分部积分法的快速运算 表格法
  20. 回忆老友蒋新松先生及庆贺《机器人产业发展规划》的发布

热门文章

  1. oracle NVL和NVL2区别
  2. python学习技术网站收集
  3. unity之使用unet创建局域网游戏
  4. 命令模式(Comand Patern)
  5. matlab机械臂建模运动学仿真+轨迹规划
  6. 前端学习:jQuery--轮播图,旋转缩放平移动画,仿华为商城案例
  7. SqlCommand使用实例
  8. 宝塔面板安装mediawiki
  9. “以计算律师费、诉讼费为例”:分段计费计算器的python编写
  10. 排序二叉树,平衡二叉树和红黑树的概念以及相关的操作讲解