结果 求解问题(问题规模)
{ if (问题规模足够小) 求解小规模问题
else
while(存在子问题) 求解问题(子问题规模);
return 各子问题合并之后的解;}
情况1:分解成一个子问题的递归,如遍历线性表、顺序查找等,通过循环方式可将递归表达为非递归算法,时间效率和空间效率均较高;
情况2:分解为2个子问题的递归,二分查找、二叉排序树查找,虽然分解成了两个子问题,但是每次都选择2个子问题中的一个,即只有一个后继子问题;
情况3:分解成多个子问题的递归,可采用递归算法或者使用栈的非递归算法。