`
younglibin
  • 浏览: 1213894 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java递归和迭代的区别

 
阅读更多

能使用迭代的不适用递归,另外一半递归有明确的父子关系或者 数据逐级演变为简单的算法!

递归是将上一步结果不断的压入站内, 所以递归很容易出现栈的溢出.而迭代不会!

 

 

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.

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

使用递归要注意的有两点:

1)递归就是在过程或函数里面调用自身;

2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口.

 

递归分为两个阶段:

1)递推:把复杂的问题的求解推到比原问题简单一些的问题的求解;

2)回归:当获得最简单的情况后,逐步返回,依次得到复杂的解.

 

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

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

分享到:
评论

相关推荐

    递归与迭代算法及其在JAVA语言中的应用.pdf

    在Java中实现递归和迭代算法时,需要特别注意递归算法的终止条件,以防止栈溢出错误。同时,迭代算法中要注意循环变量的控制,确保循环能够正确退出。 此外,递归和迭代的效率问题也是程序员需要关注的重点。递归...

    Java之递归和迭代用法

    在编程领域,递归和迭代是两种常见的解决问题的方法,它们在Java编程中有着广泛的应用。本文将深入探讨这两种方法,并通过实例分析它们的工作原理、优缺点以及如何在实际编程中选择合适的方式。 首先,让我们理解...

    Java 递归和迭代的方法详解.pdf

    本文将深入探讨递归与迭代的区别,以及如何在Java中有效地使用它们。 首先,让我们理解递归的基本概念。递归是一种函数或方法调用自身的技术,通常用于解决分治策略的问题,如树遍历、排序(如快速排序)和计算阶乘...

    递归与迭代算法及其在JAVA语言中的应用.zip

    在编程世界中,递归和迭代是两种基本的解决问题的方法,尤其在Java语言中,它们在算法设计中占据着核心地位。本资料包主要探讨了这两种算法的概念、区别以及它们在Java中的具体应用。 首先,我们要理解递归。递归是...

    Java程序设计中递归与迭代的比较.pdf

    在Java程序设计中,递归和迭代是两种常见的解决问题的方法。递归是函数或方法直接或间接调用自身,将复杂问题分解为相似的子问题来解决,而迭代则使用循环结构逐步推进问题的解决。 1. 递归: - **递归公式**:...

    java递归的排序和查找

    总之,Java递归的排序和查找是算法设计中的重要组成部分,理解和掌握递归能够帮助我们解决复杂问题。这个资料包可能包含了关于这些主题的实例代码和详细解释,有助于深化对递归的理解,并能应用于实际项目中。对于...

    java 递归问题文档

    这篇“java 递归问题文档”很可能是对递归的深入讲解和实例分析,旨在帮助初学者理解和掌握这一关键技能。 首先,我们需要理解递归的基本原理。递归函数通常包含两个主要部分:基本情况(base case)和递归情况...

    二叉树遍历算法解析与实现(递归、迭代、Morris遍历)

    分别使用递归和迭代的方法进行了讲解,并引入了Morris遍历的技巧。每种方法都附有详细的解题思路和Java、Python的实现代码。 适合人群:对数据结构有一定基础的开发者,特别是希望深入理解二叉树遍历算法的人群。 ...

    Recursive to Iterative in Java:递归到Java中的迭代-开源

    在编程中,递归和迭代是两种常见的解决问题的方法。递归是函数或程序调用自身的方式,而迭代则使用循环结构来重复执行一段代码。在Java中,有时我们需要将递归算法转换为迭代,以提高性能,减少内存消耗,或者因为...

    java递归

    Java递归是编程中的一个重要概念,它是指在函数或方法的定义中...通过这些例子,我们可以看到Java递归在解决特定问题时的灵活性和实用性。然而,使用递归时需谨慎,确保理解和处理好递归的所有方面,以避免潜在的问题。

    (java递归)删除文件

    在本文中,我们将深入探讨如何使用递归方法在Java中删除文件,这通常涉及到目录及其包含的所有文件和子目录的删除。以下是根据提供的代码片段提炼出的关键知识点: ### 关键知识点一:递归函数设计 递归函数`find...

    java递归实现 阶乘

    在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5的阶乘(5!)是5 × 4 × ...

    求二叉树深度.docx(递归/迭代 - C, Java, Python)

    在本文中,我们将深入探讨如何通过递归和迭代两种方法来计算二叉树的深度,并提供C++, Java和Python的代码实现。 1. 递归算法: 递归方法基于二叉树的分治思想,即通过解决子问题来解决整个问题。对于二叉树的深度...

    JAVA程序递归方式搜索Windows文件夹源代码

    此外,Java的`java.nio.file`包提供了更现代和高效的文件操作API,如`Files.walk()`方法,它可以方便地进行文件遍历而无需手动处理递归。使用这个API,你可以写出更简洁且性能更好的文件搜索代码。 总的来说,通过...

    二叉树叶子节点计数的递归与迭代实现

    然后分别用Java和Python实现了递归和非递归(基于队列)的方法来统计叶子节点个数。最后讨论了一些扩展应用,如统计非叶子节点数和满足特定条件的叶子节点数,以及打印叶子节点值的方法。 适合人群:具备基本数据...

    LeeCode144. 二叉树的前序遍历:递归&迭代

    LeeCode144. 二叉树的前序遍历:递归&迭代

    JAVA编程(递归典型题目)

    ### JAVA编程:递归典型题目解析 在计算机科学中,递归是一种强大的编程技术,它允许函数调用自身来解决问题。本文将详细解析几个典型的JAVA编程递归题目,包括阶乘计算、摘桃子问题、斐波那契数列以及汉诺塔问题,...

    Java中的迭代和递归详解

    Java中的迭代和递归是两种不同的编程方法,用于解决问题或执行任务。这两种方法都有各自的优点和缺点,适用于不同的场景。 **一、递归** 递归是一种函数自我调用的技术,通常涉及将大问题分解为相同或相似的子问题...

    java编写的递归与非递归

    在Java编程中,递归和非递归是两种常用的处理问题的方法。递归通常用于解决那些可以通过分解为更小问题来解决的问题,而非递归则更适合于使用迭代的方式来解决问题。下面将详细介绍这两种方法,并通过计算阶乘的例子...

    java递归读取xml文件

    本篇文章将深入探讨如何使用Java递归地读取XML文件。 首先,我们需要了解XML的基本结构。XML(eXtensible Markup Language)是一种标记语言,它的层次结构由元素(Element)、属性(Attribute)以及文本内容(Text ...

Global site tag (gtag.js) - Google Analytics