递归函数:自己调用自己,是子函数实现的基础。
递归之所以能实现,是因为函数的每个执行过程在栈中都有自己的形参和局部变量的副本,这些副本和该函数的其他执行过程不发生关系
但是递归函数在深层循环时效率很低,所以一般不是必须还是不要使用递归,即使用也不要层次很深。
递归函数特点
-
适用于分治算法(如快速排序、归并排序)
-
消耗较多内存(每次调用都会在栈上创建新的活动记录)
-
某些情况下效率不如迭代方法
注意事项
-
确保递归有终止条件,否则会导致栈溢出
-
递归可能效率较低,因为会有重复计算(如斐波那契数列的朴素递归实现)
-
对于深度较大的递归,考虑使用迭代或尾递归优化
-
递归函数通