递归:解法复杂问题的方法
这个对象是递归的
这个过程是递归的
可解决的问题:迷宫问题;汉诺塔问题
分治法:
对于一个复杂的问题,分解为几个相对简单且解法相同或类似的子问题来求解
必备的三个条件:
转变为新问题,
可以通过转化
接口或称递归的边界
void p(参数表) {
if
else
}
优点:结构清晰,程序已读
二叉树那边也会用到很多
缺点:每次调用要生成工作记录,保存状态信息,入栈;返回时要出栈,恢复状态信息。时间开销大。
变为非递归:
尾递归、单向递归 ->循环结构
单向递归->循环递归