[递归] 总结 递归-分治法-递推-递归树

本文深入探讨了递归与分治法的区别,阐述了递归的使用条件、写作思路及其特点。通过递归树这一分析工具,详细解释了如何分析递归效率。同时,文章通过斐波那契数列、汉诺塔问题和八皇后问题等实例展示了递归在算法中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:https://www.yuque.com/cppdev/algo/fcdw3u

在这里插入图片描述

1. 递归与分治法的区别

1.1 递归

从上往下的分析,然后回溯:从n的情况一直往下走->走到1(特殊情况)->然后往回计算->最终得到n的情况

必须满足:

  1. 在每一次调用自己时,必须是在某种意义上更接近于解(每次操作是收敛的):问题规模越来越小
  2. 必须有一次终止处理或计算的准则:必须要有一个出口

1.2 分治法

利用分治法求解,所得子问题的类型常常和原问题相同,因而很自然地使用递归求解

1.2.1 思路

  1. 输入【规模为n】的函数或问题
  2. 用某种方法把输入【分割成k(1<k≤n)个子集】,从而【产生l个子问题】
  3. 再用某种方法把它们【组合成原来问题的解】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geodoer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值