递归(recursion)和迭代(iteration)的区别

在编程中,递归和迭代都用来实现重复。它们指的是重复多次的过程。递归是基于一种方法,在这种方法中,某个对象引用自身,直到满足某个条件为止。如果一个方法可以直接或间接地调用自己,那么它就是递归的...
关键区别:在编程中,递归可以通过考虑递归函数来解释。递归函数是再次调用自身以重复代码的函数。另一方面,迭代是通过一个迭代函数来实现的,该函数循环重复代码的某一部分。

在编程中,递归和迭代都用来实现重复。它们指的是重复多次的过程。递归是基于一种方法,在这种方法中,某个对象引用自身,直到满足某个条件为止。如果一个方法可以直接或间接地调用自己,那么它就是递归的

无效名称()

递归(recursion)和迭代(iteration)的区别

{

... 名称()。。。

}

 

 

无效名称()

{

... 游戏()。。。

}

无效游戏(){

... 名称()。。。

}

对于成功的递归,必须记住递归过程中的每个调用都必须简化计算。递归是通过定义基本情况来实现的。

因式阶乘(int N)

{

如果(N==0)返回1;

else返回(N*阶乘(N-1));

}

在这个例子中,递归可以很容易地在语句(N*factorial(N-1))中看到,它再次调用factorial函数。递归非常有用,因为它有助于缩短代码。但是,递归的性能有点慢。

迭代是基于循环的。这些循环引用显式迭代过程。为了满足循环的要求,它必须有某种类型的标准来停止进一步的迭代。但是,如果循环条件测试从未变为假,那么在这种条件下,无限循环的出现是不可避免的。在这个例子中,阶乘是通过使用迭代过程来确定的-

递归(recursion)和迭代(iteration)的区别

函数阶乘(n)

{

var回路,结果;

结果=1;

for(循环=1;回路<=n;循环++)

{

结果=结果*循环;

}

返回结果;

}

在本例中,循环是通过使用从1到n的整数来实现的,loop<=n语句被用作停止进一步循环的标准。因此,我们可以得出结论,同样的结果可以通过使用递归和迭代来实现。然而,它们都是基于有点不同的方法。任何递归算法也可以使用迭代(循环)编写。

递归与迭代的比较:

 

递归 迭代
定义 递归指的是一个递归函数,在该函数中它再次调用自身来重复代码。 迭代是通过一个迭代函数来实现的,该函数循环重复代码的某一部分
重点 基本情况需要确定 需要确定终止条件
演出 比较慢 比较快
内存使用 比较多 相对较少
代码 较小 比较长的
无限重复 无限递归能够使系统崩溃 无限循环重复消耗CPU周期
结构 选择 重复
局部变量 不需要 要求的

  • 发表于 2021-07-13 20:56
  • 阅读 ( 451 )
  • 分类:通用

你可能感兴趣的文章

树集(treeset)和容器(hashset)的区别

...素添加到该对象中。数据**顺序是A,D,A,B,C,D。使用迭代器,存储的值被打印到屏幕上。输出是A、B、C、D。即使有两个A字母和两个D字母,输出也会分别显示一个A和一个D。因此,树集存储独特的元素。没有特定的**顺序,但...

  • 发布于 2020-10-19 06:21
  • 阅读 ( 229 )

递归(recursion)和迭代(iteration)的区别

关键区别——递归与迭代 递归和迭代可以用来解决编程问题。使用递归或迭代来解决问题的方法取决于解决问题的方式。递归和迭代的关键区别在于递归是一种在同一个函数中调用函数的机制,而迭代是重复执行一组指令,...

  • 发布于 2020-10-19 23:58
  • 阅读 ( 281 )

如何使用java arraylist

...添加、删除和更新元素、动态重新调整大小、对元素进行迭代等。这些操作中的大多数都经过了专门调整,以用于一般用途。 ...

  • 发布于 2021-03-13 20:41
  • 阅读 ( 208 )

什么是递归?如何使用它?

递归是一个有趣的编程概念,但学习起来有点棘手。递归只是指重复自身的东西。如果你想看到一个厚脸皮的递归例子,试着在Google上搜索递归。您将发现一个复活节彩蛋,其中搜索结果建议是递归的。另一方面,如果您想学习...

  • 发布于 2021-03-29 05:32
  • 阅读 ( 233 )

如何更改excel 2013中的自动计算和多线程功能

...式和图表,请关闭此选项。 Enable Iterative Calculation–设置迭代次数,即在执行目标搜索或解析循环引用时重新计算工作表的次数,该循环引用显示在“最大迭代次数”文本框中。有关目标查找或解析循环引用的详细信息,请参阅E...

  • 发布于 2021-04-11 21:08
  • 阅读 ( 182 )

权威(authoritative)和递归dns(recursive dns)的区别

权威DNS服务器和递归DNS服务器的主要区别在于,权威DNS服务器执行域名到IP地址的映射,而递归DNS服务器接收来自用户的请求并检查来自权威DNS的记录以找到相应的IP地址。 DNS是一种服务器,它管理和维护internet域名及其相关的...

  • 发布于 2021-07-01 03:14
  • 阅读 ( 810 )

递归(recursion)和环(loop)的区别

递归和循环的主要区别在于,递归是一种在同一函数中调用函数的机制,而循环是一种控制结构,它有助于反复执行一组指令,直到给定的条件为真。 递归和循环是两个编程概念。这两种技术都有助于开发小型到复杂的程序。 ...

  • 发布于 2021-07-01 05:19
  • 阅读 ( 295 )

递归下降分析(recursive descent parsing)和预测分析(predictive parsing)的区别

递归下降解析和预测解析的主要区别在于递归下降解析可能需要或可能不需要回溯,而预测解析不需要任何回溯。 编译过程包括几个阶段。第一阶段是词汇分析。它以字符流的形式扫描源代码,并将其转换为有意义的词素。此...

  • 发布于 2021-07-01 10:23
  • 阅读 ( 776 )

递归的(recursive)和明确的(explicit)的区别

递归和显式的主要区别在于,递归公式根据前一项给出特定项的值,而显式公式根据位置给出特定项的值。 序列是数学中的一个重要概念。它指的是一组按顺序排列的数字。我们可以用公式表示算术序列。换句话说,我们可以...

  • 发布于 2021-07-01 15:01
  • 阅读 ( 793 )

迭代器(iterator)和列表迭代器(listiterator)的区别

...元素,而ListIterator可以向前和向后遍历集合中的元素。 迭代器和ListIterator是Java中的两个接口。迭代器用于列表、集合和映射。另一方面,ListIterator只用于列表。在ListIterator中,可以向前和向后遍历集合中的项。相反,迭代器只...

  • 发布于 2021-07-01 16:05
  • 阅读 ( 211 )
hasd62013
hasd62013

0 篇文章

相关推荐