递归算法和递归思维是什么?
1、 什么是递归算法?
将一个大问题转化成为一个与原问题相似的小问题,继而简化问题进行求解
简单说,就是一个函数直接或者间接调用自身的方法
比喻法理解,就是费曼技巧
2、 什么是递归思维?
不同于循环,递归注重有去(递过去)有回(归回来)。
举例说明:
A爬楼梯到顶楼,每走一层楼都是一个函数,然后重复调用这个函数,直到走完所有楼层到达顶楼,这就是循环,此时站在楼下的B不知道楼层有多高。
如果A到达顶楼之后,继续下楼梯,再次调用函数,直到到达楼下,告诉B楼层有多高,此时就是递归。
在语法中,存在主谓宾,然后宾语还可以嵌套主谓宾,并且是无限嵌套,这样的语句就存在递归的思维。
我吃水果-主谓宾
我吃妈妈买的水果-主谓主谓宾
我吃妈妈在张阿姨开的店里买的水果-此时使用在张阿姨店里来修饰买的动作,但是这个并不算是主谓宾的嵌套,完全不合理
在斐波拉切数列中有很好的体现
面试中也经常会考察程序员的递归思维,通常使用冒泡排序等算法实操案例进行考察