Java 什么';学习递归函数和跟踪的最佳方法是什么?

Java 什么';学习递归函数和跟踪的最佳方法是什么?,java,recursion,Java,Recursion,在我的课堂上,我们将学习java中的递归函数。学习递归最好的方法是什么?你建议如何追踪它? 谢谢 好吧,递归可以简单地用在迭代可以使用的任何地方。通常,基于迭代的算法在生产阶段会被递归替换一次,因为它们非常简单直观 摘要 想象一下,一个孩子被要求收集砖块到盒子里。孩子很可能会简单地“从地板上拣一块砖放进盒子里”,然后“只要地板上没有更多的砖,就重复这个步骤”。每个孩子都会问自己:“我还需要收集砖块吗?”、“哦!这里有一块,所以我把它放进盒子里了”或者“没有更多的砖块了!”。所以当机制调用自身时,

在我的课堂上,我们将学习java中的递归函数。学习递归最好的方法是什么?你建议如何追踪它?
谢谢

好吧,递归可以简单地用在迭代可以使用的任何地方。通常,基于迭代的算法在生产阶段会被递归替换一次,因为它们非常简单直观

摘要 想象一下,一个孩子被要求收集砖块到盒子里。孩子很可能会简单地“从地板上拣一块砖放进盒子里”,然后“只要地板上没有更多的砖,就重复这个步骤”。每个孩子都会问自己:“我还需要收集砖块吗?”、“哦!这里有一块,所以我把它放进盒子里了”或者“没有更多的砖块了!”。所以当机制调用自身时,这种行为就是递归。这种算法有两个特点:

  • 算法的结尾已经清楚地说明了
  • “大”的复杂问题被分解为基本问题,以及比我们开始时复杂程度更低的问题
例子 考虑一个递归搜索函数:

void search(int arr[], int left, int right, int x) {
  if (left > right)
    cout << "Element " << x << " been not found!\n;
  else
    if (tab[left] == x)
      cout << "Element " << x << "been found at position " << left << "\n";
    else
      search(tab, left+1, right, x); // call search() witch updated properties
}
void搜索(int-arr[],int-left,int-right,int-x){
如果(左>右)

我不能看这篇很棒的帖子