英语写作-如何度过疫情期间
毫无疑问,新冠性病毒时2020年高考英语作文命题的热点之一。本文整理疫情相关的发展、介绍、人物、应对措施及倡议书等优秀范文,供考生学习参考。05如何度过疫情期...
2025-04-15
调用通常发生在彼此不同的函数之间。其实调用函数有一种特殊的方式,那就是调用自身,这就是所谓的函数递归调用。递归也是编程中常见的技巧,甚至是一种思维方式,值得掌握。
本文选自《极简讲义:一本书入门数据分析与机器学习》这本书,将和我们一起讨论函数的递归。在本文的最后,我们将分析谷歌经典递归面试问题。
在解释递归的抽象概念之前,让我们回顾一下过去。
小时候,当我们缠着长辈讲故事时,长辈可能会用以下故事“忽悠”我们:
从前,山上有一座山和一座庙。庙里有一个老和尚在给小和尚讲故事。有什么故事?从前,山上有一座山和一座庙。在寺庙里,一个老和尚正在给小和尚讲故事。有什么故事?
……
除非讲故事的人停止说话,否则故事可以无限地继续下去,因为嵌套的故事就是故事本身,这是语言递归的一个例子。
但由于这个故事没有终止条件,实际上陷入了一个有头无尾的死循环,不符合编程领域对“递归”的定义。
在编程领域,递归是指函数(或方法)直接或间接调用自身的操作,如下图所示。递归调用的优点是可以大大减少代码量,将原本复杂的问题简化为简单的基础操作。在编程过程中,“递归调用”是一个非常实用的技巧。
递归图
从上图可以看出,一个函数无论是直接调用还是间接调用自己,都是一个无止境的过程。在编程中,很明显,这种没有终止的调用是不可能发生的。因此,在编写递归算法时,读者应该特别注意这样一个事实,即所有递递归英文归都必须有终止条件,这也称为递归退出。如果递归函数缺少递归出口,则在执行时会陷入无限循环。递归出口通常可以由if语句设置。当满足一定条件时,不会继续,调用一定的值结束递归。
谷歌拥有世界上最聪明的程序员。他们不仅聪明,而且有自己的“冷幽默”,独树一帜。比如你不知道递归是什么,不妨在谷歌搜索一下这个关键词。然后你会发现,除了给出必要的搜索结果外,谷歌还给出了提示“你在找递归吗”,如下图所示。
乍一看,你可能会认为谷歌搜索有问题。我真正明确无误地询问的是“递归”。你还有什么建议?
其实这就是谷歌搜索引擎背后程序员的“冷幽默”:点击提示“递归”,搜索引擎会再次搜索“递归”——,相当于叫自己——。这不就是递归的本质吗?
也许你明白了,笑了,但你可能还是会想:这不对。所有递归都有终止条件。如果我们一直点击提示词“递归”,查询会无限期地进行下去吗?
别担心,你不会一直点击的。因为这个递归的出口是查询者最终知道什么是递归,并停止查询。而你才是理解的人。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 201825640@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
相关文章
毫无疑问,新冠性病毒时2020年高考英语作文命题的热点之一。本文整理疫情相关的发展、介绍、人物、应对措施及倡议书等优秀范文,供考生学习参考。05如何度过疫情期...
2025-04-15
【收藏】考研复试英语口语素材集合5.你的家庭。考研复试中对英语口语的考察也是必不可少的一项,最常见的考查方式就是英语自我介绍和英语口语对话,所涉及的...
2025-04-15
英语写作语法之一般现在时的构成。(关注本站,持续更新基础英语考研资料,不定时发放英语大礼包)英语语法之一般现在时的构成一般现在时是最常用的时态之一。一般现在时表...
2025-04-15
英语写作语法之一般过去时。(关注本站,持续更新基础英语考研资料,不定时发放英语大礼包)英语语法之一般过去时前面给大家讲了一般现在时、现在进行时和一般将来时,今天...
2025-02-13
热评文章
英语四级作文范文
推荐一个免费英语在线学习网站【超实用】
学习机有用吗 用一暑假就知道
英语学习计划的作文 docx
英语视频免费学习 有那个好的平台可以推荐
有关保护环境的英语作文(幼儿园保护环境的美篇)