1、递归:函数、过程、子程序在运行过程中直接或间接调用自身而产生的重入现象。
递归算法的主要表现形式为过程或函数在定义自身的同时对自身进行调用。
求解递归方程一般方法:
1)替换法
例一:Hanio塔问题
根据汉诺塔算法,当n>1,n个圆盘的移动可分解为2个n-1个圆盘的移动和一个大圆盘的移动
例二:二分归并排序
以上例子的递推方程推广至一般形式,可记为:
可得到推论:
2、递归树法
例:
3、主定理
将规模为n的问题划分成a个子问题,每个子问题的规模大小为n/b,函数f(n)表示划分子问题与组合子问题所需要的时间开销。