递归算法

1.一个函数调用其自身,就是递归

2.递归和普通函数调用一样是通过栈实现的

3.树与二叉树适合使用递归的形式来表述

4.算法分为基础步和归纳步

递归算法是将归纳法的思想应用于算法设计之中,递归算法充分地利用了计算机系统内部机能,自动实现调用过程中对于相关且必要地信息的保存与回复

(1)问题的描述涉及规模

(2)问题的规模发生变化后,解决问题的方法完全相同,并且原问题的解由小规模问题的解构成

(3)小规模的问题是可以求解的(在有限步内可以停机)

输入:n

输出:n!

输入:盘子的个数n、柱子的名称a,b,c

输出:移动方案

输入:位数n

输出:斐波那契数列第n位的值

有n阶楼梯,每次只能下一个或者两个,计算一***有多少种下楼方法

算法思想:

1.将n个数均分为s1和s2

2.分别求解s1和s2的最大值和最小值

s1最大值为max1,s1最小值为min1

s2最大值为max2,s2最小值为min2

3.计算min(min1,min2),max(max1,max2)