Java中的递归和迭代之间有什么区别?

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

递归

  • 递归使用选择结构。

  • 如果递归步骤不能以某种条件(基本情况)收敛的方式减少问题,则将发生无限递归,并且无限递归会导致系统崩溃。

  • 识别基本情况后,递归终止。

  • 由于维护堆栈的开销,递归通常比迭代慢。

  • 递归比迭代使用更多的内存。

  • 递归使代码更小。

示例

public class RecursionExample {

   public static void main(String args[]) {

      RecursionExample re = new RecursionExample();

      int result = re.factorial(4);

      System.out.println("Result:" + result);

   }

   public int factorial(int n) {

      if (n==0) {

         return 1;

      }

      else {

         return n*factorial(n-1);

      }

   }

}

输出结果

Result:24


迭代

  • 迭代使用重复结构。

  • 如果循环条件测试永远不会为假,并且无限循环重复使用CPU周期,则迭代将发生无限循环。

  • 循环条件失败时,迭代将终止。

  • 迭代不使用堆栈,因此它比递归要快。

  • 迭代消耗更少的内存。

  • 迭代使 代码更长。

示例

public class IterationExample {

   public static void main(String args[]) {

      for(int i = 1; i <= 5; i++) {

         System.out.println(i + " ");

      }

   }

}

输出结果

1

2

3

4

5

以上是 Java中的递归和迭代之间有什么区别? 的全部内容, 来源链接: utcz.com/z/343472.html

回到顶部