8 个解决方案
#1
一般程序调用方法的栈,和你自己建立的数据结构的栈,在不同的内存段,拿张os系统的内存分配图看一下,你会发现,基本每个系统供程序调用的栈的空间都是有限的。这意味着每个系统对每个调用程序的分配的栈空间都是有限的。有些系统允许你去改动这个限制,但总的来说,它是有限的。
一般编程都不鼓励使用递归,不仅是效率问题,更严重的是有可能发生运行时错误,也就是程序崩溃。而你为数据分配的空间就不一样了,那个空间基本只受两个条件限制:1.计算机的位宽,也就是寻址范围,2.计算机本机的内存限制
一般编程都不鼓励使用递归,不仅是效率问题,更严重的是有可能发生运行时错误,也就是程序崩溃。而你为数据分配的空间就不一样了,那个空间基本只受两个条件限制:1.计算机的位宽,也就是寻址范围,2.计算机本机的内存限制
#2
有时候,递归算法的计算复杂性要大于非递归的。
有些算法要求有显式表示,这时只能用非递归算法。
有些算法要求有显式表示,这时只能用非递归算法。
#3
stl里递归也照用不误
#4
递归和人的思维比较接近。我的感觉。
比如遍历树或快速排序,用递归很好理解,非递归就看起来麻烦。
比如遍历树或快速排序,用递归很好理解,非递归就看起来麻烦。
#5
++
#6
递推比较容易理解,但是递归 时间复杂度太大,做了很多多余的工作,甚至会导致*
#7
编译器对递归算法的优化有许多限制。
#8
递归不太好用,难把握
#1
一般程序调用方法的栈,和你自己建立的数据结构的栈,在不同的内存段,拿张os系统的内存分配图看一下,你会发现,基本每个系统供程序调用的栈的空间都是有限的。这意味着每个系统对每个调用程序的分配的栈空间都是有限的。有些系统允许你去改动这个限制,但总的来说,它是有限的。
一般编程都不鼓励使用递归,不仅是效率问题,更严重的是有可能发生运行时错误,也就是程序崩溃。而你为数据分配的空间就不一样了,那个空间基本只受两个条件限制:1.计算机的位宽,也就是寻址范围,2.计算机本机的内存限制
一般编程都不鼓励使用递归,不仅是效率问题,更严重的是有可能发生运行时错误,也就是程序崩溃。而你为数据分配的空间就不一样了,那个空间基本只受两个条件限制:1.计算机的位宽,也就是寻址范围,2.计算机本机的内存限制
#2
有时候,递归算法的计算复杂性要大于非递归的。
有些算法要求有显式表示,这时只能用非递归算法。
有些算法要求有显式表示,这时只能用非递归算法。
#3
stl里递归也照用不误
#4
递归和人的思维比较接近。我的感觉。
比如遍历树或快速排序,用递归很好理解,非递归就看起来麻烦。
比如遍历树或快速排序,用递归很好理解,非递归就看起来麻烦。
#5
++
#6
递推比较容易理解,但是递归 时间复杂度太大,做了很多多余的工作,甚至会导致*
#7
编译器对递归算法的优化有许多限制。
#8
递归不太好用,难把握