
1、递归的百度百科定义
程序调用自身的编程技巧称为递归( recursion)。
递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归的能力在于用有限的语句来定义对象的集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
2、递归的通俗理解
递归就是在函数内部调用自己的函数被称之为递归。
3、几个关于递归通俗的比喻
1 2 3 4 5 6 7 8 9 |
|
4、最简单的递归的实例
1 2 3 4 5 6 7 8 9 10 |
|
输出结果:
1 2 3 4 |
|
5、递归的特点
通过以上的介绍,我们大致可以总结出递归的以下几个特点:
(1)必须有一个明确的结束条件;
(2)每次进入更深一层递归时,问题规模(计算量)相比上次递归都应有所减少;
(3)递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是的,所以,递归调用的次数过多,会导致栈溢出)。
关于递归还有两个名词,可以概括递归实现的过程:
递推:像上边递归实现所拆解,递归每一次都是基于上一次进行下一次的执行,这叫递推。
回溯:则是在遇到终止条件,则从最后往回返一级一级的把值返回来,这叫回溯。
众多python培训视频,尽在python学习网,欢迎在线学习!