使用嵌套循环或递归函数的输出有什么区别?在考虑条件时,哪种方法最适合生成组合?嵌套循环和递归函数有什么区别?
-2
A
回答
1
递归算法从同一个函数(递归)中调用一个函数。是否执行递归是基于某种条件。
function foo()
{
?/ do work
if(condition)
foo();
}
迭代算法通常会调用函数一些次数(n)。
function foo()
{}
for(int i = 0; i < n; i++)
foo();
递归函数时需要重复操作某些数据块和的是否重复的条件是依赖于前一个操作,通常使用。在数学中计算一个截断的无穷级数就是一个例子。
当条件不依赖于以前的操作时,通常会使用迭代函数。反转矩阵具有预定义的n。
这两种方法都可以用于大多数目的,但您通常会发现在特定情况下一种方法比另一种方法更容易。
尽管有递归的意识,但仍然存在调用堆栈溢出。如果可以保证算法会收敛并在一定数量的递归内结束,最好只使用它。
0
递归和迭代(循环)是一般意义上不可比较的不同策略。对于某些算法,您可能同时具有迭代和递归版本(例如阶乘或斐波那契数字),对于其他算法,其中一个可能比另一个更直观(例如递归树行走)。
无论算法遵循何种策略,输出必须相同,否则您将实现不同的算法。
底线,它真的取决于你将使用什么算法。
1
递归可以被看作是“做”循环的另一种方式。主要优点是代码可读性,正如你在这个Stackoverflow question中看到的,在这种情况下,当有很多嵌套循环时。
但要小心,因为Python(1000)有一个小的递归限制。您可以通过键入
>>>import sys
>>>print sys.getrecursionlimit()
1000
对于递归的其他案件VS循环的概述验证,检查this pdf。但是,如this Stackoverflow answer中所述,您应该坚持Python的纯迭代方案。
相关问题
- 1. 递归嵌套循环
- 2. Scheme/Lisp嵌套循环和递归
- 3. javascript中两个嵌套循环之间有什么区别?
- 4. 循环和电路有什么区别
- 5. 循环和迭代有什么区别?
- 6. 递归和递归枚举语言有什么区别
- 7. JavaScript中的嵌入和嵌套循环有区别吗?
- 8. 如何将嵌套for循环转换为递归函数?
- 9. 在Python中为嵌套循环创建递归函数
- 10. 递归函数 - N的嵌套循环不断变化indicies
- 11. swift嵌套递归函数
- 12. 递归嵌套函数
- 13. 递归的N-嵌套循环
- 14. 递归执行嵌套循环
- 15. 将嵌套循环转换为递归
- 16. 将嵌套循环转换为递归
- 17. 在递归函数中返回函数和不返回有什么区别?
- 18. 这两个递归函数有什么区别?
- 19. 这两个递归ocaml函数有什么区别?
- 20. 递归与循环之间的区别?
- 21. 递归级别和循环计数
- 22. 问题与递归循环和嵌套多维数组
- 23. for循环递归函数
- 24. 循环递归函数
- 25. 嵌套数组和关联数组有什么区别?
- 26. Ruby:for循环和每个循环之间有什么区别?
- 27. 无限循环和循环之间有什么区别?
- 28. For循环嵌套函数
- 29. 如何将3个嵌套循环的函数变成一个递归函数?
- 30. 递归和类实例递归的区别是什么
这取决于您要解决的具体问题。你不会一直使用一个而不是其他的。注意“[了解递归](http://stackoverflow.com/questions/717725/understanding-recursion)” – 2014-10-19 17:11:49