清明时节雨纷纷,递归分治欲断魂

说起数据结构,大家肯定都不陌生,今天我们一起来聊下递归分治思想,下面是我在学习过程中做的笔记,可能不是很全面,希望大家能够多多担待。
1、递归算法是效率比较低的一种算法,不到万不得已请不要用递归
2、For,while,do-while都属于迭代算法,可以用来替代递归
3、递归是函数在调用自己的意思,
4、斐波那契数列的递归实现:当n=0时,F(n)=0;当n=1时,F(n)=1;当n>1时,F(n)=F(n-1)+F(n-2)
5、递归函数就是一个直接调用或者通过一系列的调用语句间接的调用自己的函数
6、写递归程序最怕的是陷入永不结束的无穷递归中。所以每个递归定义必须至少有一个条件,当这个条件满足时则递归不在进行,即函数不再调用自身而返回
7、迭代和递归的区别:迭代使用的是循环结构,递归使用的是选择结构
8、递归的优点:使用递归能使程序的结构更加清晰,更简洁,更容易理解,从而减少读懂代码的时间
9、缺点:大量的递归调用会建立函数的副本,会消耗大量的时间和内存,而迭代则不需要此种付出。
10、递归的调用分为调用和回退阶段,递归的回退顺序是它调用顺序的逆序。
11、分治思想在算法设计中很常见,当一个问题规模较大且不易求解的时候,就可以考虑将问题分成几个小的模块,逐一解决
12、分治思想和递归算是亲兄弟,因为采用分治思想处理问题,其各个小模块通常具有和大模块相同的结构,这种特性也使递归技术有了用武之地
13、折半查找的基本思想:减小查找序列的长度,分而治之的进行关键字的查找
14、折半查找的实现过程:先确定查找记录的所在范围,逐渐缩小这个范围,直到找到该记录或查找失败为止。
15、汉诺塔:把64个盘子从X柱子借助Y柱子移动到Z柱子上
(1)先将63个盘子移动到Y上,确保大盘在上小盘在下
(2)再将最底下的第64个盘子从X柱子上移动到Z柱子上
(3)最后将63个盘子从Y柱子上移动到Z柱子上
注:第一步和第三步都需要借助第三个柱子,也就是需要将盘子在三个柱子中移动以保证大的在下,小的在上
以上就是我对这块的理解与认识,希望能够帮助有需要的人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

七月学长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值