算法基础之递归调用

简介:

    递归是很多算法中都使用到的一种编程方法,他是一种优雅的问题解决方法。

优缺点:

    使用递归可以使我们的程序更容易让人理解,但是性能上可能要弱于使用循环的方式。

注意事项:

    编写递归函数时,必须记住两点:基线条件递归条件

    基线条件:指函数何时不再调用自己。

    递归条件:指函数调用自己。

栈:

    何为调用栈?理解调用栈是学会使用递归前提,我们知道:栈是一种数据结构,而计算机在内部使用被称为调用栈的栈

    每当一个函数被调用,计算机都会将该函数调用涉及到的所有变量的值存储到内存中,计算机使用一个栈来表示这些内存块(一个函数中的变量存储到一个内存块中),如果在一个函数中调用另外一个函数的话,那么调用栈的形式就是一个栈中从下往上依次堆积。

算法基础之递归调用_第1张图片
1


算法基础之递归调用_第2张图片
2

即栈存在深度,随着调用函数链的增加,栈的高度越来越高,其中的内存块越来越多。当函数调用结束,其对应的内存块就会被弹出。

调用栈就是用于存储多个函数变量的栈

总结:

    递归是指调用自己的函数

    每个递归都有两个条件:基线条件和递归条件

    栈有两种操作:压入和弹出

    所有函数调用都进入调用栈

    调用栈可能很长,这将会占用大量内存

你可能感兴趣的:(算法基础之递归调用)