递归优点:逻辑清晰,容易理解,容易写。
递归缺点:函数堆栈使用多,时间空间消耗大。
循环优点:时间空间消耗小。
循环缺点:逻辑复杂,难以理解,难写。
尾递归和单向递归都可以写成循环,尤其是尾递归,最好是写成循环,而且也很容易写成循环,甚至可以通过机械的步骤来实现,不少编译器也实现了尾递归直接优化成循环的功能。
python3.6未实现尾递归优化,最大递归调用深度是3000左右。
递归优点:逻辑清晰,容易理解,容易写。
递归缺点:函数堆栈使用多,时间空间消耗大。
循环优点:时间空间消耗小。
循环缺点:逻辑复杂,难以理解,难写。
尾递归和单向递归都可以写成循环,尤其是尾递归,最好是写成循环,而且也很容易写成循环,甚至可以通过机械的步骤来实现,不少编译器也实现了尾递归直接优化成循环的功能。
python3.6未实现尾递归优化,最大递归调用深度是3000左右。