什么是递归法执行过程时怎样的

人气:164 ℃/2022-12-22 09:40:43
【导读】 什么是递归法执行过程时怎样的,下面是小编为你收集整理的,希望对你有帮助!递归法是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。那么你对递归法了解多少呢?以下是由小编整理关于什么是递归法的内容,希望大家喜欢...

递归法是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。那么你对递归法了解多少呢?以下是由小编整理关于什么是递归法的内容,希望大家喜欢!

什么是递归法

能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。

递归法执行过程

递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题规模为n的求解推到比原问题简单一些的问题规模小于n的求解。例如上例中,求解fibn,把它推到求解fibn-1和fibn-2。也就是说,为计算fibn,必须先计算fibn-1和fibn-2,而计算fibn-1和fibn-2,又必须先计算fibn-3和fibn-4。依次类推,直至计算fib1和fib0,分别能立即得到结果1和0。在递推阶段,必须要有终止递归的情况。例如在函数fib中,当n为1和0的情况。

在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解,例如得到fib1和fib0后,返回得到fib2的结果,……,在得到了fibn-1和fibn-2的结果后,返回得到fibn的结果。

在编写递归函数时要注意,函数中的局部变量和参数只是局限于当前调用层,当递推进入“简单问题”层时,原来层次上的参数和局部变量便被隐蔽起来。在一系列“简单问题”层,它们各有自己的参数和局部变量。

递归法的作用

由于递归引起一系列的函数调用,并且可能会有一系列的重复计算,递归算法的执行效率相对较低。当某个递归算法能较方便地转换成递推算法时,通常按递推算法编写程序。例如上例计算斐波那契数列的第n项的函数fibn应采用递推算法,即从斐波那契数列的前两项出发,逐次由前两项计算出下一项,直至计算出要求的第n项。

递归法执行过程“的人还:

Copyright © 2008-2024 蜗牛素材网 All Rights Reserved
一个致力于分享各种行业知识与经验、学习资源交流平台,知识让你的眼界更宽广!