在我的课上,我们将学习java中的递归函数。学习递归的最好方法是什么?您建议如何跟踪它?谢谢!
发布于 2018-01-29 13:36:40
那么,递归可以在任何可以迭代的地方简单地使用。基于迭代的算法通常在生产阶段被替换为递归一次,因为它们真的很简单和直观。
摘要
想象一下,一个孩子被告知要把砖头收集到盒子里。孩子很可能会简单地“从地板上拿一块砖放进盒子里”和“只要地板上没有更多的砖就重复这一步”。每一个孩子都在问自己:“还有没有我需要收集的砖头?”、“哦!这里有一块,所以我把它放进了盒子里”或者“没有砖块了!”因此,当机制调用自身时,这种行为就是递归。这样的算法有两个特点:
示例
考虑一个递归搜索函数:
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
}
我们的大脑一直在做数学运算,通常比递归复杂得多。
https://stackoverflow.com/questions/48494592
复制相似问题