内容源自:https://bbs.csdn.net/topics/300190422
递归和非递归(用栈)
非递归(用栈),也用到栈函数了,和递归就没多大区别了!
每次递归进栈出栈,非递归(用栈)的每次调用栈函数也是进栈出栈。主要是在非递归(用栈)中,它的栈函数里比递归多了些赋值语句,所以效率上,非递归(用栈)比递归差。
只不过,递归越深,占用栈空间越多。非递归(用栈),占用的栈空间少。
如果递归的深度还没达到超出栈空间的程度,那么递归比非递归(用栈)好。
如果是非递归(不用栈),当然是非递归最好。