在本文中,我们将了解递归和迭代之间的区别。
它使用选择结构。
如果递归步骤不能将问题缩小为较小的问题,则会发生无限递归。
如果未在特定条件下进行转换,它也将变为无限递归。
此特定条件称为基本情况。
遇到无限递归时,系统崩溃。
当满足基本情况时终止。
它比迭代慢,因为它具有维护和更新堆栈的开销。
与迭代相比,它使用更多的内存。
递归可减少代码的大小。
它使用重复结构。
它增加了代码的大小。
与递归相比,它使用更少的内存。
当循环中的条件失败时,它终止。
当循环中的条件永远不会为False时,就会发生无限循环。
当发生无限循环时,它将一次又一次地使用CPU周期。
它不利用堆栈。
与递归相比,它是快速的。
如果说在任何地方都使用递归,那么可以使用for循环,对吗?如果递归通常比较慢,那么将其用于循环迭代的技术原因是什么? 如果总是可以将递归转换为for循环,那么有经验法则吗?
前面几节介绍了两个可以方便地用递归与迭代实现的函数。本节要比较递归与迭代方法,介绍为什么程序员在不同情况下选择不同方法。 递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计
问题内容: 我正在编写一个递归函数,其目的是迭代pList文件。我的代码是 但是当我调用函数“ HashMapper((Map)((Map)entry).keySet());”时。我有一个例外 java.util.HashMap $ HashMap条目不能转换为java.util.Map 我不知道如何调用函数以及如何将Hashmap条目转换为Map 问题答案: 入境确实不是。它是,因此您可以根据需
问题内容: 我们可以使用遍历a 或a 或a 。但是只能用于遍历a ,不能遍历a 。为什么? 我知道主要的区别在于,使用迭代器,我们只能在一个方向上运行,而我们可以在两个方向上运行。还有其他区别吗?和任何优势了? 问题答案: 差异在Listdocerator的Javadoc中列出 您可以 向后迭代 随时获取迭代器。 随时添加新值。 在这一点上设置一个新值。
我有两种不同的方法,一种是用迭代法计算第n个元素的斐波那契序列,另一种是用递归法。 程序示例如下所示: 我试图找出哪种方法更快。我得出的结论是,对于较小数量的数字,递归速度更快,但随着第n个元素的值增加,递归速度变慢,迭代速度变快。以下是三个不同n的三个不同结果: 示例#1(n=10) 示例#2(n=20) 示例#3(n=30) 我真正想知道的是,为什么迭代突然变得更快,递归变得更慢。如果我错过了
我在scheme中构建了一个递归函数,它将在一些输入上重复给定的函数f,n次。 我需要用尾递归构建这个函数的迭代版本,如果我正确理解尾递归,我认为我做得对。 我的问题是,这真的是迭代的吗?我相信我已经使用尾部递归正确地构建了它,但从技术上讲,它仍然将一系列操作推迟到count=0,在这里,它执行叠加的任意多个组合。