欢迎来到 0713网站目录
登录

你对递归很纠结吗?

虽然代码量少,理解起来太费劲?如果你这么想那就对了。

因为我们人类的思维方式和递归的实现逻辑是有冲突的!我们想问题根本不那么想。

可是程序员面试不得不准备算法题,尤其是竞争激烈的公司,不管你进去拧不拧螺丝钉。

 

算法题中超过50%的问题直接或间接的与递归相关。

重要事情说三遍,因为这很重要

 

今天我们就掰开它看看,到底有多难。

玩过俄罗斯套娃么?一层一层的套,里面有更小的娃娃。

如果中间某个娃娃里面放了一枚钻戒,让你去找出来—这就是嵌套问题的一种。

 

俄罗斯套娃

听过马三立的《祖传秘方》单口相声么?治疗浑身发痒的神器-纸条包纸条(答案是:挠挠)

实际上,答案不一定在最后一张纸条里面,哪张都可能,哈哈。没看过的自己补一下。

单口相声-祖传秘方

开心完了看看理解递归的的关键是啥:

  • 输出并不总是按照它在代码中出现的顺序出现。最重要的是按照编译器的方式遍历代码。
  • 按照代码顺序前后关系理解输出,你就完蛋了。

例子说话:

就走一遍啥也没干是啥样?

嵌套Stack

执行结果看下面:全都入栈,再从孩子的孩子最底层执行出来。

in stack for recurser_print(5) output not trigger yet

in stack for recurser_print(4) output not trigger yet

in stack for recurser_print(3) output not trigger yet

in stack for recurser_print(2) output not trigger yet

in stack for recurser_print(1) output not trigger yet

exit and print n for recurser_print(1)

exit and print n for recurser_print(2)

exit and print n for recurser_print(3)

exit and print n for recurser_print(4)

exit and print n for recurser_print(5)

还是没太明白?加个图:只有一个门,后进先出来。计算机得记得它先后要干活的具体顺序。

嵌套算法

基本执行看明白了,一个基本例子理解一下:

  • 例子:求n的阶乘
  • 如果n=5 那么 数学计算方法: result = 5 * (5-1) * (5-2) * (5-3) * (5-4)也就是 5*(4*(3*(2*(1))))

特点:

  • 总结的函数式就是递归自己调用自己的写法:F = n*f(n-1)
  • 父亲使用儿子的返回结果

求n的阶乘

运行结果:

In stack:3

In stack:2

out stack:2 -人工添加

out stack:3 - 人工添加

6

总结:

嵌套算法的特点:

• 每次有不同的输入

• 但是每次运算相同

• 必须有停止嵌套的条件(防止死循环)

• 与循环的不同:每次输入数据范围缩小

为什么要用嵌套算法:

• 能用嵌套不用循环:好写 好读,-- 这条可以有异议

• 问题可以分解为相同的小问题(处理的数据范围变小)

• 广泛应用于 树, 图 数据结构中

• 比如: 树的深度优先搜索,如果你发现一个问题可以通过搜索来解决,那么你就有一个很好的递归算法候选。

 

特别提示:

推荐

最新

最新文章

常见程序搜索关键字转码
飒!24位湖北姑娘,天安门参阅!
org域名为什么禁止备案
从域名到网站,只需四步!
电信、双线、多线等线路的差别是什么?如何选择?
如何选择合适的虚拟主机
不求与人相比,但求超越自己。
虚拟主机购买其他常见问题
𝗦𝗵𝗮𝗿𝗲 | 张雅钦高清壁纸
𝑺𝒉𝒂𝒓𝒆壁纸|陈都灵|女神在世,权威二字
选择多大空间和流量的主机合适
吃饭只吃七分饱,但“七分饱”究竟是多饱?
如何购买虚拟主机
局域网怎么开启ftp访问共享
陈都灵|哇塞!太适合当壁纸啦~
虚拟主机常见组件版本及参数支持情况(不支持反解析)
祝绪丹|你低头浅笑时,恰似日光拂面来
虚拟主机子站功能开设子网站流程
黄霄雲|人美歌甜,身材还这么好
习近平总书记重要讲话,全文来了!

猜你想看

墙面潮湿掉皮了,快来这样做,轻松解决问题哦
如何限制演员高片酬?政协委员冯远征提出新思路
书面劳动合同可以补签吗?没签劳动合同如何证明劳动关系?答案看这里!
社保卡可以借给他人使用吗?赶紧来了解!
希望你好 但不希望你太好:我们为什么会嫉妒别人
关于劳动合同的这些事儿你了解吗?
一生必去的十大景点,全去过此生无憾了,你去过几个?
超市分切水果引担忧:早晨切的西瓜,傍晚还新鲜吗?
剧情电影《纽约唯一活着的男孩》解说文案
在12123成功选号但又改变主意,怎么办?
“坑爹”的汽车用品大盘点,千万别送给亲爹
原地热车究竟有啥作用?不少老司机都搞不明白,看看维修师傅怎么说?
瑞士梅花表和浪琴表选哪个,梅花表适合什么人佩戴?手表品牌
“闯黄灯”失败是走还是停?交警给了明确的解释!
涨知识了:为什么我们会做梦?
10月-12月份,到了北京怎么玩?出差,旅游必备指南!建议收藏,转发,肯定能用上#北京头条#
才知道,400W、800W、1200W的电动车都能跑多快?哪种适合家用?
女职工退休年龄50岁和55岁的比较分析
90%的人都踩过的家电坑 这些潜规则一定要知道
远离面包添加剂,跟甜品师傅学的列巴,操作简单,果仁满满,好吃