递归算法,把大规模问题分解成容易解决而且求解方法相同的子问题,一般用递归函数实现,递归函数就是不断调用自身的函数。
举个例子:
俄罗斯套娃(应该都玩过,里面最小的那个不能打开,其他能打开。从最小的娃娃开始,用稍大的那个娃娃套着,直至最大的一个套住所有的娃娃)。
现在有如图俄罗斯套娃,已经按正确的方法套好,里面最小的那个娃娃背上写了一个密码。现在需要求解的问题是得到那个密码,并且得到密码后要把这套俄罗斯娃娃按正确的方法套好。
那么做法应该是,一层一层地打开娃娃,直到看到最小的娃娃之后获取密码,然后一个一个的把娃娃合上。也就是,分别按顺序对每一个娃娃进行打开的操作,直至打开到小娃娃,查看密码,然后再进行依次闭合娃娃的操作。
这就是一个递归过程。而这个递归函数就是打开闭合娃娃,判断里面的娃娃是否是最小的那个,如果是,获取密码,如果不是,打开